Нет конструктора со строкой подключения в Entity Framework datacontext
Я использую Entity Framework 5.0
для моего проекта. Я посмотрел в Интернете, и я увидел, что для контекста данных сущности объекта был другой конструктор, у которого был строковый параметр для строки соединения.
В моем сгенерированном data context
у меня нет такого конструктора. Я просмотрел базу DbContext
и имеет такой конструктор.
Был ли код сгенерирован неправильно? Я создал код из базы данных. Может ли это быть причиной?
Оказывается, что я могу редактировать файл шаблона генерации кода, чтобы добавить новый конструктор. Теперь я добавил новый конструктор. Файл является файлом MyDataContext.tt в вашей модели edmx. Там у вас есть код С#, смешанный с кодом шаблона. Вы можете скопировать конструктор без аргументов и вставить его ниже. Затем вы можете изменить его и добавить к нему строковый аргумент и передать этот аргумент конструктору DbContext следующим образом: base (myString).
Ответы
Ответ 1
Вы можете добавить его по мере необходимости.
Проверьте сгенерированный файл и добавьте перегруженный конструктор.
public YourContext(string connectionStr)
: base(connectionStr)
{
}
Вероятно, лучше определить это в частичном классе, так как каждое поколение будет требовать, чтобы вы каждый раз вручную добавляли его.