У меня есть dll, которая использует Entity Framework 6 для выполнения некоторых операций с базой данных. Я использую первый подход к базе данных. Модель и все, что касается Entity Framework, как и строка подключения в App.config, были созданы с помощью wizzard в Visual Studio.
Итак, я скомпилировал dll и поместил его вместе с соответствующим .config в папку, в которой ожидает приложение, использующее dll.
Все работает нормально, пока не дойду до того момента, когда будет выполнен фактический вызов базы данных. Там я получаю сообщение об ошибке:
Не удается найти строку подключения для MyDatabaseEntity
Сгенерированная автоматически строка соединения, как я уже сказал, является файлом конфигурации DLL. Я не могу изменить App.config приложения. Но приложение передает объект, у которого есть вся информация, необходимая мне для сборки строки подключения. Поэтому я ищу способ установить строку соединения в коде, не полагаясь на файл конфигурации. Однако все учебники, которые я нахожу для первого подхода к базе данных, используют этот метод. Я нашел здесь сообщение, в котором говорится просто указать строку соединения в качестве параметра при создании объекта типа
MyDatabaseEntities = new MyDatabaseEntities(dbConnect);
но'MyDatabaseEntities 'не имеет конструктора, который принимает любые параметры
public partial class MyDatabaseEntities : DbContext
{
public MyDatabaseEntities()
: base("name=MyDatabaseEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<MyTable> MyTable { get; set; }
}