2014-02-09 3 views
0

В моем проекте я использую Entity Framework 6 и Code First. Моя цель - инициализировать базу данных всеми необходимыми исходными данными. Основываясь на проведенных исследованиях, я решил реализовать IDatabaseInitializer. Однако есть кое-что, что я не могу понять, и я буду рад получить некоторое объяснение.Код EF во-первых: каков правильный способ инициализации БД?

Я хочу использовать стратегию «dropcreatedatabaseifmodelchanges». Однако один единственный инициализатор работает против одного контекста. В моем проекте у меня есть несколько контекстов. Итак, я решил создать несколько инициализаторов, по одному для каждого контекста.

Но есть проблема: первый инициализатор загружает, удаляет DB и добавляет свои данные. После этого второй инициализатор загружает и удаляет DB (вместе с данными из предыдущего инициализатора) ... Итак, я заканчиваю работу с DB, загруженной данными только из последнего инициализатора.

Очевидно, что мой подход неправильный. Каков правильный способ инициализации БД, если существует более одного контекста БД?

Благодаря

+0

Я могу понять наличие нескольких моделей для одной базы данных, но повторное создание базы данных на основе только одной из этих моделей становится просто невозможным. Либо используйте единую унифицированную модель, либо не позволяйте EF создавать базу данных для вас, я не думаю, что есть другие варианты. – hvd

ответ

0

Я думаю, что вам нужно, чтобы создать один контекст, который содержит все наборы сущностей всех контекстов и инициализировать базу данных из этого контекста. Затем вы можете создавать и использовать меньшие контексты.

Смежные вопросы