【发布时间】:2016-03-31 06:38:19
【问题描述】:
尝试在运行时使用连接字符串或将其从 App.config 中删除。但是我收到错误消息。
仅供参考:EF 6 CodeFirst
public class DfDbContext : DbContext
{
public DfDbContext()
: base(GetConnectionString())
{
}
private static string GetConnectionString()
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "xxxxx";
builder.InitialCatalog = "xxxx";
builder.UserID = "xxx";
builder.Password = "xxxx";
builder.MultipleActiveResultSets = true;
builder.PersistSecurityInfo = true;
return builder.ConnectionString.ToString();
}
}
错误
“System.ArgumentException”类型的异常发生在 System.Data.dll 但未在用户代码中处理
附加信息:不支持关键字:“初始目录”。
任何替代解决方案?
【问题讨论】:
-
数据源为服务器名称。 InitialCatalog 是该服务器上的哪个数据库。 (对于 SQL Server。)
-
哦,大概就是这样。从该连接字符串中,EF 无法知道您正在与 SQL Server 数据库通信。你如何告诉 EF 你正在使用什么数据库类型,以便它知道如何解释连接字符串?
-
如果你传入一个打开的连接而不是一个连接字符串会发生什么? (是的,我猜,但听起来应该可以。)
-
可以添加builder.Provider = "System.Data.SqlClient";例如:msdn.microsoft.com/en-us/library/bb738533(v=vs.100).aspx
标签: c# sql-server entity-framework