Entity Framework连接字符串可以重用现有的连接字符串吗?

时间:2009-03-26 03:15:59

标签: .net entity-framework ado.net

在我的配置文件中,我有一个应用程序的遗留部分使用的连接字符串(使用数据集)和实体框架的另一个字符串:

<connectionStrings>
    <add name="Database" connectionString="Server=..." />
    <add name="Entities" connectionString="metadata=.....connection string='Server=..." />
</connectionStrings>

这意味着服务器名称,数据库名称等被指定两次。我想告诉EF连接字符串重用第一个字符串 - 这可能吗?

2 个答案:

答案 0 :(得分:16)

我知道这篇文章有点陈旧,但我认为这会帮助那些人:

您可以使用EntityConnectionStringBuilder从现有连接字符串构建EF连接。这是我在自己的代码中使用的示例:

public static string GetEntityFrameworkConnectionString(string clientConnectionString)
{
    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
    entityBuilder.Provider = "System.Data.SqlClient";
    entityBuilder.ProviderConnectionString = clientConnectionString;
    entityBuilder.Metadata = "res://*/Entities.UBTEntities.csdl|res://*/Entities.UBTEntities.ssdl|res://*/Entities.UBTEntities.msl";
    return entityBuilder.ToString();
}

因此,当您实例化EF提供程序时,只需将上述方法返回的字符串传入构造函数。

希望这有帮助。

答案 1 :(得分:1)

我认为更好的方法是重构应用程序以仅使用一个连接字符串,而不是尝试在配置文件中引用另一个连接字符串。