У меня есть база данных SqlServer Compact Edition, которая содержит 2 таблицы.
Для каждой из этих таблиц у меня есть класс контекста, производный от DbContext
, который используется приложением для доступа к таблице.
Чтобы не связывать различные компоненты приложения, у меня не может быть одного класса контекста, который имел бы свойства DbSet
для обеих таблиц.Скорее, мне нужно иметь 2 различных класса контекста, каждый из которых должен быть полностью не осведомлен о другом и его данных.
Я использую подход, основанный на коде, мой код определяет сущности и модель,и я позволил Entity Framework создать базу данных для меня.
Моя проблема заключается в следующем: как я могу позволить Entity Framework автоматически создавать базу данных и таблицы для меня при инициализации контекста, но при этом все 2 контекста совместно используют одно и то же?база данных и соединение?
Прямо сейчас, что я получаю, первый контекст успешно создает базу данных и таблицу в ней, но когда я пытаюсь создать второй контекст, я получаю, что неудивительно, следующую ошибку:
The model backing the 'SomeObjectContext' context has changed since the database
was created. Either manually delete/update the database, or call Database.SetInitializer
with an IDatabaseInitializer instance. For example, the DropCreateDatabaseIfModelChanges
strategy will automatically delete and recreate the database, and optionally seed it with
new data.
Ни один из доступных IDatabaseInitializer
не подходит для меня, потому что я не хочу, чтобы вся база данных была отброшена при создании второго контекста.Я просто хочу, чтобы таблица второго контекста была создана в существующей базе данных.
Буду признателен за любые советы по ее решению.
Спасибо