根据配置中的提供程序更改 EF6 中的连接字符串

本文关键字:EF6 字符串 连接 配置 程序 | 更新日期: 2023-09-27 18:30:58

我已经从EF5迁移到EntityFramework 6。

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

我通过获得类型

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

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

我无法使用 DbConfiguration 属性执行此操作,因为我每次都需要修改连接字符串。

根据配置中的提供程序更改 EF6 中的连接字符串

您可以使用

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 !!