我想在f#中使用SqlEntityConnection类型提供程序来查询和更新数据库 当我使用指向实时SQL Server数据库的连接字符串时,它运行良好。
type EntityConnection = SqlEntityConnection<"Data Source=myServer;Initial Catalog=myDb;...", Pluralize=true>
现在我想摆脱对实时数据库的依赖,而是使用本地模式文件。鉴于我在msdn上读到的内容,我尝试了以下一行:
type private EntityConnection = SqlEntityConnection<LocalSchemaFile="mySchemaFile.ssdl", Pluralize=true>
不幸的是,它没有编译,编译器的消息是:
错误46类型提供程序&#39; Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders&#39;报告错误:使用此提供程序时,必须指定连接字符串或连接字符串名称。要指定连接字符串,请使用SqlEntityConnection&lt;&#34; ...连接字符串...&#34;&gt;。
那我该怎么办?如果我留下连接字符串,我觉得我并没有真正关闭对数据库的依赖。例如,如果我尝试使用不存在的服务器切换数据源,则它不会编译。
答案 0 :(得分:2)
您可以在配置文件中提供连接字符串名称以及连接字符串。 您仍然可以提供一个localschema文件,该文件将用于本地缓存模式。
如果您将模式文件放在源代码管理下,那么在没有参数的情况下调用GetDataContext()
时,连接字符串将仅用作默认值,但在构建或编辑代码时则不会。
您还需要将参数ForceUpdate设置为False。