我正在尝试使用System.Data.Sqlite使SQLite与EF6和F3一起工作。
我正在按照这里描述的演练进行操作并获得edmx文件和C#程序进行编译(之前我已经完成了)。 Walkthrough: Generating F# Types from an EDMX Schema File (F#)
默认代码在设计时没有显示错误,并且VS收集了表结构。基本上,edmx文件没问题。
type internal edmx = EdmxFile<"ModelK.edmx">
[<EntryPoint>]
let main argv =
let context = new edmx.MyBaseModel.MyBaseEntities(strBulder)
query { for course in context.T1 do
select course.r1 }
|> Seq.iter (fun course -> printfn "%s" course)
printfn "%A" argv
0 // return an integer exit code
我正在使用NuGet包System.Data.SQLite EF6 1.0.94.0,deps EntityFramework 6.1.1,System.Data.SQLite Core 1.0.94.0并从SQLite端安装捆绑包(一个支持VS2013)。
我的问题是sql连接字符串。 EF需要连接字符串与meta,常规sting不起作用。
这是我设计师的原始连接字符串。
@"metadata=res://*/ModelK.csdl|res://*/ModelK.ssdl|res://*/ModelK.msl;provider=System.Data.SQLite.EF6;provider connection string="data source=D:\VS2013\FSharp940\FSharp940MyBase.db"" providerName="System.Data.EntityClient""
到目前为止我已尝试过:
System.ArgumentException未处理消息:未处理的异常 类型&#39; System.ArgumentException&#39;发生在System.Data.Entity.dll中 其他信息:不支持关键字:数据源。
遵循一些SO建议并取代&#34;与&#39;。 读取模式时出现错误,必须以/开头,然后除以:。
类型提供者 &#39; Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders&#39; 报告错误:读取架构时出错。 fel 7005:参数 source = D:\ VS2013 \ FSharp940 \ FSharp940 \ MyBase.db har angetts p†ett felaktigt s“tt。 Alla v“xlar m†ste b”rja med tecknet / och namnet m†ste avgr“nsas fr†n v”rdet med kolon&#39;:&#39;。&#39;。
将我的C#App.Config实体连接字符串和其他东西带到我的F#App.Config并从那里读取。
输入内部FooDb = SqlEntityConnection&LT;的connectionStringName =&#34; MyBaseEntities&#34 ;, 通过ConfigFile =&#34;的App.config&#34;&GT;
不。
类型提供者 &#39; Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders&#39; 报告错误:读取架构时出错。 fel 7005:参数 源= d:\ VS2013 \ FSharp940 \ FSharp940 \ MyBase.db
我确实理解它正在抱怨filepath并用它做了一些实验而没有任何结果
类型提供者 &#39; Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders&#39; 报告错误:读取架构时出错。 fel 7001:keywork st“ds not: 元数据。
最后我尝试了EntityConnectionStringBuilder。
let strBulder =
let conn = new EntityConnectionStringBuilder()
conn.Metadata <- @"res://*/ModelK.csdl|res://*/ModelK.ssdl|res://*/ModelK.msl;"
conn.Provider <- @"System.Data.EntityClient"
conn.ConnectionString <- @"D:\VS2013\FSharp940\FSharp940\MyBase.db"
let ec = new EntityConnection(conn.ToString())
ec
新人......
未处理的类型&#39; System.TypeInitializationException&#39; 发生在未知模块中。
我写给conn.ConnectionString的所有内容都会引发异常,包括没有任何路径的MyBase.db。
我看到问题出现在连接字符串中,可能是我的文件路径,但目前还不知道格式是什么。我的意思是...... EF必须了解它自己的配置文件,对吧?
有什么想法吗? :)