DbContext и строка подключения (поставщик не возвратил строку ProviderManifestToken) - PullRequest
2 голосов
/ 27 октября 2011

Есть ли способ передать строку подключения в конструктор DbContext. Я действительно ненавижу идею иметь параметр конфигурации в приложении или web.config

Когда вы хотите сослаться на вашу dll, содержащую вашу модель EF, вы должны знать, что нужно скопировать эту глупую конфигурацию, вместо того, чтобы иметь ее в центральном месте и иметь конструктор, который обращается к этой настройке, независимо от того, куда идет dll. 1003 *

Возможно ли это, или мы вынуждены жить с этим разочарованием? Не каждая модель EF живет в веб-приложении или exe.

Спасибо

UPDATE : Я думал, что эта ошибка была связана с отсутствующей строкой соединения в файле конфигурации. Я передаю объект SqlConnection, и он дает мне ту же ошибку. Почему происходит эта ошибка?

1 Ответ

2 голосов
/ 27 октября 2011

Вы можете использовать перегрузку 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);
}
...