Entity Framework 4.1 Отключить проверку совместимости модели - PullRequest
0 голосов
/ 23 мая 2011

Мне нужно использовать класс DropCreateDatabaseIfModelChanges - Initializer, потому что я хочу создать одну специальную сущность (таблицу), если она не существует.Моя проблема в том, что у меня также есть другая сущность в моем DbContext, которая не должна быть частью проверки совместимости модели.

Я получаю следующее сообщение об ошибке:

Model compatibility cannot be checked because the EdmMetadata type was not inclu
ded in the model. Ensure that IncludeMetadataConvention has been added to the Db
ModelBuilder conventions.

Есть ли возможность исключить специальную сущность из этой проверки?

РЕДАКТИРОВАТЬ: Я сделал то, что предложил Деварт.Проблема, похоже, иная, чем я думал.Все работает нормально, если я позволю EF создать новую базу данных с моим CheckedContext.Но я получаю сообщение об ошибке выше, когда я пытаюсь использовать мой NonCheckedContext, который должен использовать существующую таблицу ...

EDIT2: Это рабочий раствор.Все отлично работает, когда база данных не существует раньше.Но это не вариант для меня, чтобы удалить / создать базу данных.

1 Ответ

1 голос
/ 23 мая 2011

Возможное решение: создайте класс контекста, унаследованный от DbContext, а затем создайте два отдельных субконтекста, унаследованных от базового - CheckedContext и NonCheckedContext, и соответственно установите стратегию инициализации базы данных.
Обратите внимание, что вы должны получить доступ к CheckedContext.во-первых, чтобы он запустил все свои проверки.

...