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 中的配置部分不存在,因为它具有更高的优先级。