我第一次尝试F#。我知道我需要能够访问数据库来完成任何重要的工作。我们一直在使用Entity框架。所以我能够使用现有的模型文件。该文件是使用EF5制作的,我还在F#项目上安装了EF5(使用nuget)。这是我写的代码。
open System.Data
open System.Data.Entity
open Microsoft.FSharp.Data.TypeProviders
let connectionString = "metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=Oracle.DataAccess.Client;provider connection string='data source="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=dev)))";password=888888888888888;user id=444444444444444'"
type internal edmx = EdmxFile<"Model.edmx", ResolutionFolder = @"C:\Users\ahernandez\Documents\Source Control\Web\Applications\NACS_API\NAWS_API\Models">
let internal context = new edmx.Model.Entities(connectionString)
[<EntryPoint>]
let main =
query { for ua_event in context.MV_COURSE_SCHEDULE do
select ua_event }
|> Seq.iter (fun ua_event -> printfn "%s" ua_event.EVE_EVENT_CODE)
我只收到一个错误:
Error 1 Type mismatch. Expecting a
System.Linq.IQueryable<string> -> string [] -> int
but given a
System.Linq.IQueryable<string> -> unit
The type 'string [] -> int' does not match the type 'unit' c:\users\ahernandez\documents\visual studio 2013\Projects\TestFsOracle1\Program.fs 26 8 TestFsOracle1
该错误让我觉得查询由于某种原因失败了。我想如果有一个实体框架错误,我也会看到错误。有什么想法吗?