1

我已从 EF5 移至 EntityFramework 6。

现在我面临一个问题,我想根据 app.Config 中设置的提供程序更改连接字符串。含义 如果是 SqlServerCe,那么我需要更改 DatabaseFile.sdf 文件名来更改数据库。如果是SqlServer,我需要更改InitialCataloge。

我通过获取类型来做到这一点

'Database.DefaultConnectionFactory' 但这在 EF6 中已过时。

如何根据提供者修改连接字符串。

我无法通过使用 DbConfiguration 属性来做到这一点,因为我每次都需要修改连接字符串。

4

1 回答 1

3

您可以使用

DbConfiguration.SetConfiguration(new YourDbConfiguration());

所以你可以在不使用属性的情况下使用你的配置。

但是如果我使用

public CeDbConfiguration()
{
 SetDefaultConnectionFactory(new SqlCeConnectionFactory(SqlCeProviderServices.ProviderInvariantName,
                                                        @"c:\test",
                                                        @"c:\test\db.sdf"));
SetProviderServices(SqlCeProviderServices.ProviderInvariantName,
                    SqlCeProviderServices.Instance);
}

要配置 SQL CE 工厂,路径“C:\test”将被忽略,我还必须设置 Database.DefaultConnectionFactory!

于 2013-09-24T08:22:58.290 回答