По разным причинам я бы хотел , а не сохранить строку подключения для моей модели Entity Framework DB в одном из различных файлов .config. (Я использую самый последний и самый лучший API DBContext с новой версией Entity Framework 4.1, .NET 4 и Visual Studio 2010 C #.) Однако шаблон генерации кода для DBContext создает только один конструктор без параметров. (Если я не использую API-интерфейс DBContext, то в моей модели структуры сущностей можно выбрать 7 различных конструкторов, включая тот, который я хочу.)
Единственный способ понять, как это сделать - это напрямую изменить шаблон генерации кода (файл context.tt), чтобы получить нужный мне конструктор (пример кода ниже). Это работает, но мне кажется, что я делаю это "трудным путем". Как правильно получить конструктор DBContext, который принимает строку подключения?
public <#=Code.Escape(container)#>(string connectionString)
: base(connectionString)
{
<#
WriteLazyLoadingEnabled(container);
#>
}
Последнее замечание на случай, если это поможет кому-то другому. Хотя этот метод работает, мне потребовалось некоторое время, чтобы понять, что «строка соединения» - это не строго строка соединения с БД, а скорее строка соединения специальной структуры сущностей, которая содержит строку соединения с БД (точно так же, как то, что будет храниться в приложении). .config file).