Entity Framework 连接工厂不工作
Entity Framework connection factory not working
我使用 entity framework 6 并尝试覆盖连接字符串工厂。
我编写了以下连接工厂:
internal class MyDBConnectionFactory : IDbConnectionFactory
{
public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString)
{
SAConnection connection = new SAConnection(ConnectionManager.GetConnectionString(nameOrConnectionString ?? "Default"));
return connection;
}
}
比我自己写的配置class:
public class MyDbConfiguration : DbConfiguration
{
public MyDbConfiguration()
{
// Set provider
SetProvider();
// Connection-Information
SetConnectionInformation();
}
private void SetProvider()
{
DbProviderServices provider = new iAnywhere.Data.SQLAnywhere.SAProviderServices();
this.SetProviderServices("iAnywhere.Data.SQLAnywhere", provider);
}
private void SetConnectionInformation()
{
this.SetDefaultConnectionFactory(new MyDBConnectionFactory());
}
}
最后我将配置添加到 db-context:
[DbConfigurationType(typeof(MyDbConfiguration))]
public class TestDbContext : DbContext
{
}
我的问题是,永远不会调用 MyDBConnectionFactory
中的 CreateConnection
,我收到以下错误消息:底层提供程序打开失败。
为什么我的连接永远不会被创建?
也许有人有解决方案,那将是完美的,谢谢。
重要的是 app.config 中的配置部分不存在,因为它具有更高的优先级。
我使用 entity framework 6 并尝试覆盖连接字符串工厂。
我编写了以下连接工厂:
internal class MyDBConnectionFactory : IDbConnectionFactory
{
public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString)
{
SAConnection connection = new SAConnection(ConnectionManager.GetConnectionString(nameOrConnectionString ?? "Default"));
return connection;
}
}
比我自己写的配置class:
public class MyDbConfiguration : DbConfiguration
{
public MyDbConfiguration()
{
// Set provider
SetProvider();
// Connection-Information
SetConnectionInformation();
}
private void SetProvider()
{
DbProviderServices provider = new iAnywhere.Data.SQLAnywhere.SAProviderServices();
this.SetProviderServices("iAnywhere.Data.SQLAnywhere", provider);
}
private void SetConnectionInformation()
{
this.SetDefaultConnectionFactory(new MyDBConnectionFactory());
}
}
最后我将配置添加到 db-context:
[DbConfigurationType(typeof(MyDbConfiguration))]
public class TestDbContext : DbContext
{
}
我的问题是,永远不会调用 MyDBConnectionFactory
中的 CreateConnection
,我收到以下错误消息:底层提供程序打开失败。
为什么我的连接永远不会被创建?
也许有人有解决方案,那将是完美的,谢谢。
重要的是 app.config 中的配置部分不存在,因为它具有更高的优先级。