【问题标题】:EF Connection string without App.Config in startup project启动项目中没有 App.Config 的 EF 连接字符串
【发布时间】:2015-04-06 10:08:07
【问题描述】:

我正在尝试在我的解决方案的 DAL 项目中抽象 EF。我已经达到了只有在这个项目中才知道 EF 的地步。

我创建了一个新的 Console.Test 应用程序,它使用我的 BLL,它使用我的 DAL。现在这个新的控制台应用程序需要一个包含 EF 连接字符串的 App.Config 文件。我的下一步是删除这个 App.Config 文件,因为我想在多个平台上使用我的 BLL。

因此,我创建了派生 DbContext 的部分类,以添加一个额外的构造函数,该构造函数接受完整的连接字符串。在我的 DAL 中,我还创建了一个新的静态方法来获取连接字符串:

public static string GetSqlConnectionString(string serverName, string databaseName)
    {
        SqlConnectionStringBuilder providerCs = new SqlConnectionStringBuilder();

        providerCs.DataSource = serverName;
        providerCs.InitialCatalog = databaseName;
        providerCs.IntegratedSecurity = true;
        providerCs.UserID = "*****";
        providerCs.Password = "******";

        var csBuilder = new EntityConnectionStringBuilder();

        csBuilder.Provider = "System.Data.SqlClient";
        csBuilder.ProviderConnectionString = providerCs.ToString();

        csBuilder.Metadata = "res://Prodomus.DAL/DataObjects.Entities.Model.csdl|res://Prodomus.DAL/DataObjects.Entities.Model.ssdl|res://Prodomus.DAL/DataObjects.Entities.Model.msl";

        return csBuilder.ToString();
    }

现在我的问题是我不断收到此错误消息,说明:“基础提供程序无法打开。”。我确定我使用的凭据是正确的,这也适用于服务器名和数据库名。我在这里错过了什么吗?任何帮助将不胜感激。

提前谢谢!

【问题讨论】:

  • 您不能混合使用集成安全性和用户名/密码

标签: c# entity-framework architecture app-config n-tier-architecture


【解决方案1】:

您不能混合使用集成安全性和用户名/密码

【讨论】:

  • 谢谢哥们!这就是解决方案。复制粘贴内容时我需要更加小心。很抱歉我没有早点回复,我昨天休息了一天不在家。
猜你喜欢
  • 2014-09-16
  • 2018-07-01
  • 1970-01-01
  • 2020-09-19
  • 2013-02-01
  • 2021-10-08
  • 2012-10-07
  • 2023-04-04
  • 2015-09-16
相关资源
最近更新 更多