2

有没有办法将连接字符串传递给 DbContext 构造函数。我真的很讨厌在应用程序或 web.config 中进行配置设置的想法

当您想要引用包含 EF 模型的 dll 时,您必须注意复制该愚蠢的配置,而不是将其放在中心位置并让构造函数访问该设置,无论 dll 去哪里。

这是可能的还是我们被迫忍受这种挫败感?并非每个 EF 模型都存在于 Web 应用程序或 exe 中。

谢谢

更新:我认为这个错误与配置文件中缺少连接字符串有关。我正在传递一个 SqlConnection 对象,它给了我同样的错误。为什么会发生此错误?

4

1 回答 1

2

您可以使用 DbContext构造函数重载,它采用可以是连接字符串的字符串。

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);
}
于 2011-10-26T21:52:08.127 回答