Entity Framework - 同时使用 LocalDb 和 SQL CE
Entity Framework - use LocalDb and SQL CE simultaneously
我想提供在我的应用程序中使用 LocalDb 或嵌入式数据库的选项。安装了 EF 6、EntityFramework.SqlServerCompact 和 Microsoft.SqlServer.Compact 包。
这是我在 App.config 中的内容:
<configuration>
<connectionStrings>
<add name="Entities" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|\databasesdf" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
</entityFramework>
</configuration>
如果我尝试创建将连接字符串传递给 LocalDb 数据库的 DbContext 实例,则会出现异常(不支持关键字:"initial catalog")。
那么,如何获得根据 运行 时间设置连接到一个或另一个数据库的能力?有什么想法吗?
您应该使用基于代码的配置,并有一些外部方式来设置所需的数据库(配置/注册表设置)- 更改需要重新启动应用程序:https://msdn.microsoft.com/en-us/library/jj680699(v=vs.113).aspx
我想提供在我的应用程序中使用 LocalDb 或嵌入式数据库的选项。安装了 EF 6、EntityFramework.SqlServerCompact 和 Microsoft.SqlServer.Compact 包。
这是我在 App.config 中的内容:
<configuration>
<connectionStrings>
<add name="Entities" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|\databasesdf" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
</entityFramework>
</configuration>
如果我尝试创建将连接字符串传递给 LocalDb 数据库的 DbContext 实例,则会出现异常(不支持关键字:"initial catalog")。
那么,如何获得根据 运行 时间设置连接到一个或另一个数据库的能力?有什么想法吗?
您应该使用基于代码的配置,并有一些外部方式来设置所需的数据库(配置/注册表设置)- 更改需要重新启动应用程序:https://msdn.microsoft.com/en-us/library/jj680699(v=vs.113).aspx