实体框架连接工厂不起作用

本文关键字:不起作用 工厂 连接 框架 实体 | 更新日期: 2023-09-27 17:57:10

>我使用实体框架 6 并尝试覆盖连接字符串工厂。

我编写了以下连接工厂:

internal class MyDBConnectionFactory : IDbConnectionFactory
{
    public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString)
    {
        SAConnection connection = new SAConnection(ConnectionManager.GetConnectionString(nameOrConnectionString ?? "Default"));
        return connection;
    }
}

比我编写了自己的配置类:

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());
    }
}

最后,我将配置添加到数据库上下文中:

[DbConfigurationType(typeof(MyDbConfiguration))]
public class TestDbContext : DbContext
{
}

我的问题是,MyDBConnectionFactory中的CreateConnection永远不会被调用,并且我收到以下错误消息:基础提供程序在打开时失败。

为什么永远不会创建我的连接?

也许有人有一个解决方案,这将是完美的,谢谢。

实体框架连接工厂不起作用

app.config 中的配置部分不存在非常重要,因为它具有更高的优先级。