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