有没有办法将连接字符串传递给DbContext构造函数。 我真的很讨厌在app或web.config中配置设置的想法
当你想引用你的包含你的EF模型的dll时,你必须知道复制那个愚蠢的配置,而不是让它在一个中心位置,并让构造函数访问该设置,无论dll在哪里。< / p>
这是可能的,还是我们被迫忍受这种挫败感?并非每个EF模型都存在于Web应用程序或exe中。
由于
更新: 我认为这个错误与配置文件中缺少连接字符串有关。我正在传递一个SqlConnection对象,它给了我同样的错误。为什么会发生这种错误?
答案 0 :(得分:2)
您可以使用带有字符串的DbContext constructor重载,该字符串可以是连接字符串。
string connectionString = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=\"data source=localhost;initial catalog=Test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework\"";
using (DbContext db = new DbContext(connectionString))
{
var m = db.Set<Main>().Take(1).First();
Console.WriteLine(m.Id);
}