Advertisement
Guest User

Untitled

a guest
Feb 21st, 2015
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 2.65 KB | None | 0 0
  1. namespace SqlController
  2.  
  3. open System
  4. open System.Data
  5. open System.Data.Linq
  6. open Microsoft.FSharp.Data.TypeProviders
  7. open Microsoft.FSharp.Linq
  8.  
  9. open Entities
  10.  
  11. type dbSchema = SqlDataConnection<"Data Source=VM-WIN8\SQLEXPRESS;Initial Catalog=mobile;Integrated Security=SSPI;">
  12.  
  13. type SqlConnector() =
  14.  
  15.     // universal sql functions
  16.     member private this.DeleteRowsFrom (table : Table<_>) rows =
  17.         table.DeleteAllOnSubmit(rows)
  18.  
  19.     // map functions
  20.     member private this.Item2Record (item : Item) =
  21.         new dbSchema.ServiceTypes.ItemsTable(
  22.             ItemId = item.ItemId,
  23.             ItemName = item.ItemName)
  24.  
  25.     member private this.Record2Item (e : dbSchema.ServiceTypes.ItemsTable) =        
  26.         new Item(e.ItemId, e.ItemName)
  27.        
  28.     // ### Items
  29.  
  30.     // return all items
  31.     member this.GetItems() =
  32.         use db = dbSchema.GetDataContext()            
  33.  
  34.         query {
  35.             for row in db.ItemsTable do
  36.             select row
  37.         } |> Seq.map this.Record2Item |> Seq.toArray
  38.  
  39.  
  40.     // return one item by item id
  41.     member this.GetItemByItemId(itemId : string) =
  42.         use db = dbSchema.GetDataContext()
  43.        
  44.         query {
  45.             for rows in db.ItemsTable do
  46.             where (rows.ItemId = itemId)
  47.             select rows
  48.         } |> Seq.nth 0 |> this.Record2Item
  49.        
  50.     // insert new item
  51.     member this.InsertItem (item : Item) =                    
  52.         use db = dbSchema.GetDataContext()
  53.         item |> this.Item2Record |> db.ItemsTable.InsertOnSubmit
  54.        
  55.         try
  56.             db.DataContext.SubmitChanges()
  57.         with
  58.             | exn -> printfn "Exception: \n%s" exn.Message
  59.  
  60.     // update item
  61.     member this.UpdateItem (item : Item) =
  62.         use db = dbSchema.GetDataContext()
  63.                  
  64.         query {
  65.             for rows in db.ItemsTable do
  66.             where (rows.ItemId = item.ItemId)
  67.             select rows
  68.         }
  69.         |> Seq.nth 0
  70.         |> (fun e -> e.ItemName <- item.ItemName)
  71.                                                      
  72.         try
  73.             db.DataContext.SubmitChanges()
  74.         with
  75.             | exn -> printfn "Exception: \n%s" exn.Message
  76.  
  77.     // delete item by itemId
  78.     member this.DeleteItemByItemId(itemId : string) =
  79.         use db = dbSchema.GetDataContext()
  80.        
  81.         query {
  82.             for rows in db.ItemsTable do
  83.             where (rows.ItemId = itemId)
  84.             select rows
  85.         } |> this.DeleteRowsFrom db.ItemsTable
  86.  
  87.         try
  88.             db.DataContext.SubmitChanges()
  89.         with
  90.             | exn -> printfn "Exception: \n%s" exn.Message
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement