我已从EF5移至EntityFramework 6。
现在我遇到了一个问题,我想根据app.Config中设置的提供程序更改连接字符串。 含义如果是SqlServerCe,那么我需要更改DatabaseFile.sdf文件名来更改数据库。 如果是SqlServer,我需要更改InitialCataloge。
我通过获取
的类型来做到这一点'Database.DefaultConnectionFactory'但这在EF6中已过时。
如何根据提供程序修改连接字符串。
我无法通过使用DbConfiguration属性来实现这一点,因为我每次都需要修改连接字符串。
答案 0 :(得分: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 Factory,路径'C:\ test'将被忽略,我必须设置Database.DefaultConnectionFactory !!