实体框架6重用连接多个数据库

时间:2016-07-08 13:22:39

标签: c# mysql database entity-framework

我使用Entity Framework来连接存储在多个服务器上的多个数据库。 例如,服务器1有100个数据库,服务器2有100个数据库。所有数据库都具有完全相同的数据库结构。

在实体框架中,我手动设置连接字符串,附加数据库的名称。为此,我创建了一个与MyEntities.edmx文件同名的部分类。

public partial class MyEntities {
    public MyEntities(string connectionString, string databaseName) : base(connectionString) {
        this.Database.Connection.ChangeDatabase(databaseName);
    }

    public static MyDbEntities CreateFromDatabaseName(string databaseName) {
        String connectionString = "metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl|res://*/MyEntities.msl;provider=MySql.Data.MySqlClient;provider connection string=\"server=mysql.mydomain.tld;User Id=user;password=pass;Persist Security Info=True\""
        return new MyEntities(connectionString, databaseName);
    }
}

功能方面它很有效。我可以调用MyEntities.CreateFromDatabaseName(“dbname”)来创建连接到特定数据库的实体框架实例。问题是,每次我这样做,它为每个应用服务器节点连接2-3个实际的mysql连接。我希望它能够重新使用同一数据库服务器上的连接,即使它们绑定到该服务器上的不同数据库,从而减少了连接数。 这是否可以使用EF 6.x?

0 个答案:

没有答案