1

我试图在我的解决方案的DAL项目中抽象EF。我已经达到了EF只知道这个项目。启动项目中没有App.Config的EF连接字符串

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

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

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(); 
    } 

现在我的问题就是,我不断收到此错误信息,指出:“基础提供未能打开。”。我确信我使用的证书是正确的,这也适用于服务器名称和数据库名称。我在这里错过了什么吗?任何帮助将非常感激。

Thnx提前!

+1

不能混合intergrated安全和用户名/密码 – ErikEJ 2015-02-06 10:47:39

回答

2

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

+0

日Thnx的人!这是解决方案。复制粘贴时我需要更加小心。对不起,我没有回应,昨天休息了一天,不在家。 – 2015-02-07 15:52:51

相关问题