5 people like it.
Like the snippet!
F# 3.0 - EntityFramework Type Provider usage with Northwind DB
A small sample how to use F# 3.0 Entity Framework (EF) Type Provider.
Visual Studio 11 Beta (and Northwind sample database) needed.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
|
(*
#r "System.Data.Entity.dll"
#r "FSharp.Data.TypeProviders.dll"
*)
open System
open Microsoft.FSharp.Data.TypeProviders
module Queries =
[<Literal>]
let connectionstring = "Server=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;MultipleActiveResultSets=true"
//<interactive at once>
type private EntityConnection = SqlEntityConnection<ConnectionString=connectionstring, Pluralize = true>
let fetchCustomers =
let context = EntityConnection.GetDataContext()
query { for customer in context.Customers do
where (customer.Country = "Finland")
select (customer.ContactName, customer.CompanyName) }
//</interactive at once>
let show = fetchCustomers |> Seq.iter (fun i -> Console.WriteLine("Customer: " + fst i + ", Company: " + snd i))
(* Output:
Customer: Pirkko Koskitalo, Company: Wartian Herkku
Customer: Matti Karttunen, Company: Wilman Kala
val show : unit = ()
*)
|
namespace System
namespace Microsoft
namespace Microsoft.FSharp
namespace Microsoft.FSharp.Data
module Queries
from Script
Multiple items
type LiteralAttribute =
inherit Attribute
new : unit -> LiteralAttribute
Full name: Microsoft.FSharp.Core.LiteralAttribute
--------------------
new : unit -> LiteralAttribute
val connectionstring : string
Full name: Script.Queries.connectionstring
type private EntityConnection = obj
Full name: Script.Queries.EntityConnection
val fetchCustomers : Linq.IQueryable<string * string>
Full name: Script.Queries.fetchCustomers
val context : obj
val query : Linq.QueryBuilder
Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.query
val customer : obj
custom operation: where (bool)
Calls Linq.QueryBuilder.Where
custom operation: select ('Result)
Calls Linq.QueryBuilder.Select
val show : unit
Full name: Script.Queries.show
module Seq
from Microsoft.FSharp.Collections
val iter : action:('T -> unit) -> source:seq<'T> -> unit
Full name: Microsoft.FSharp.Collections.Seq.iter
val i : string * string
type Console =
static member BackgroundColor : ConsoleColor with get, set
static member Beep : unit -> unit + 1 overload
static member BufferHeight : int with get, set
static member BufferWidth : int with get, set
static member CapsLock : bool
static member Clear : unit -> unit
static member CursorLeft : int with get, set
static member CursorSize : int with get, set
static member CursorTop : int with get, set
static member CursorVisible : bool with get, set
...
Full name: System.Console
Console.WriteLine() : unit
(+0 other overloads)
Console.WriteLine(value: string) : unit
(+0 other overloads)
Console.WriteLine(value: obj) : unit
(+0 other overloads)
Console.WriteLine(value: uint64) : unit
(+0 other overloads)
Console.WriteLine(value: int64) : unit
(+0 other overloads)
Console.WriteLine(value: uint32) : unit
(+0 other overloads)
Console.WriteLine(value: int) : unit
(+0 other overloads)
Console.WriteLine(value: float32) : unit
(+0 other overloads)
Console.WriteLine(value: float) : unit
(+0 other overloads)
Console.WriteLine(value: decimal) : unit
(+0 other overloads)
val fst : tuple:('T1 * 'T2) -> 'T1
Full name: Microsoft.FSharp.Core.Operators.fst
val snd : tuple:('T1 * 'T2) -> 'T2
Full name: Microsoft.FSharp.Core.Operators.snd
More information