【问题标题】:Can Entity Framework connection strings reuse an existing connection string?Entity Framework 连接字符串可以重用现有的连接字符串吗?
【发布时间】:2009-03-26 03:15:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: .net entity-framework ado.net


    【解决方案1】:

    我知道这篇文章有点老了,但我认为这会对那里的人有所帮助:

    您可以使用 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 提供程序时,只需将上述方法返回的字符串传入构造函数即可。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 问题是连接字符串必须不同 - 实体框架需要一种格式,而 DataSets 无法识别另一种格式。
      • 也就是说,我也许可以挂钩构造函数以使用现有的手动构建实体连接字符串...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      相关资源
      最近更新 更多