启动项目中没有App.Config的EF连接字符串

时间:2015-02-06 09:47:06

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

我试图在我的解决方案的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();
    }

现在我的问题是我不断收到此错误消息说明:'基础提供商无法打开。'。我确信我使用的凭据是正确的,这也适用于servername以及databasename。我错过了什么吗?任何帮助将非常感谢。

Thnx提前!

1 个答案:

答案 0 :(得分:2)

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