启动项目中没有 App.Config 的 EF 连接字符串
EF Connection string without App.Config in startup project
我正在尝试在我的解决方案的 DAL 项目中抽象 EF。我已经达到了 EF 仅在该项目中为人所知的地步。
我创建了一个新的 Console.Test 应用程序,它使用我的 BLL,它使用我的 DAL。现在这个新的控制台应用程序需要一个包含 EF 连接字符串的 App.Config 文件。我的下一步将是删除这个 App.Config 文件,因为我想在多个平台上使用我的 BLL。
所以我创建了派生 DbContext 的部分 class 来添加一个额外的构造函数,它接受完整的连接字符串。在我的 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();
}
现在我的问题是我不断收到此错误消息:'The underlying provider failed to open.'。我确信我使用的凭据是正确的,这也适用于服务器名和数据库名。我在这里错过了什么吗?非常感谢任何帮助。
提前致谢!
您不能混合集成安全和 username/password
我正在尝试在我的解决方案的 DAL 项目中抽象 EF。我已经达到了 EF 仅在该项目中为人所知的地步。
我创建了一个新的 Console.Test 应用程序,它使用我的 BLL,它使用我的 DAL。现在这个新的控制台应用程序需要一个包含 EF 连接字符串的 App.Config 文件。我的下一步将是删除这个 App.Config 文件,因为我想在多个平台上使用我的 BLL。
所以我创建了派生 DbContext 的部分 class 来添加一个额外的构造函数,它接受完整的连接字符串。在我的 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();
}
现在我的问题是我不断收到此错误消息:'The underlying provider failed to open.'。我确信我使用的凭据是正确的,这也适用于服务器名和数据库名。我在这里错过了什么吗?非常感谢任何帮助。
提前致谢!
您不能混合集成安全和 username/password