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

Pau*_*ell 5 .net ado.net entity-framework

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

<connectionStrings>
    <add name="Database" connectionString="Server=..." />
    <add name="Entities" connectionString="metadata=.....connection string='Server=..." />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

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

小智 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();
}
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助.


And*_*are 1

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