DbContext和连接字符串(提供程序未返回ProviderManifestToken字符串)

时间:2011-10-26 21:39:41

标签: entity-framework-4.1 dbcontext

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

当你想引用你的包含你的EF模型的dll时,你必须知道复制那个愚蠢的配置,而不是让它在一个中心位置,并让构造函数访问该设置,无论dll在哪里。< / p>

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

由于

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

1 个答案:

答案 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);
}