1

我想使用 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 类型提供程序“Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders”报告错误:使用此提供程序时,您必须指定连接字符串或连接字符串名称。要指定连接字符串,请使用 SqlEntityConnection<"...connection string...">。

所以我该怎么做?如果我留下连接字符串,我感觉我并没有真正关闭对数据库的依赖。例如,如果我尝试使用不存在的服务器切换数据源,它不会编译。

4

1 回答 1

2

您可以在配置文件中提供连接字符串名称以及连接字符串。您仍然可以提供一个 localschemafile,用于在本地缓存模式。

如果您将架构文件置于源代码管理之下,则连接字符串将仅在不带参数调用时用作默认值GetDataContext(),而在构建或编辑代码时则不会。

您还需要将参数 ForceUpdate 设置为 False。

于 2014-12-08T21:00:59.930 回答