2015-01-21 2 views
1

Я понимаю, что соглашение заключается в использовании API-интерфейса Entity Framework Fluent в стороне от переопределенного метода OnModelCreating в вашем методе DBContext; и что это выполняется только во время создания db.Может ли API-интерфейс EF Fluent после создания базы данных

Это позволило бы мне поверить, что Fluent API можно использовать только один раз (например, при разработке вашего db), если вы бросаете и создаете свою базу данных каждый раз, когда происходят изменения.

Мой вопрос: есть ли способ использовать Fluent API для конфигурации db, только для обновлений баз данных, например, во время выполнения команды миграции базы данных «update-database»?

ответ

1

Из DbContext.OnModelCreating documentation:

Как правило, этот метод вызывается только один раз, когда первый экземпляр производного контекста создается. Модель для этого контекста затем кэшируется и предназначена для всех дополнительных экземпляров контекста в домене приложения.

Так вызывается, когда модель создана не только при создании базы данных. Это произойдет, когда вы вызовете Update-Database после добавления переноса или при запуске своего сайта после публикации новой версии.

Ссылки:

https://stackoverflow.com/a/6181867/150342

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

+1

Спасибо ... Я думаю, я просто пытаюсь определить, что лучший способ, чтобы иметь возможность развивать свою базу данных, как я, разрабатывающих Приложение MVC, добавление моделей и т. Д. Кажется, что есть два корня, указывайте на инициализатор Drop и Recreates после chages или явно примените изменения через «Миграции данных»/«Менеджер пакетов». Первый кажется мне более прямым. Отзывы о предпочтениях оценены. –

+1

От элегантной ссылки кода выше. Совет № 1 - «Не использовать автоматические миграции Автоматические миграции - это забава для демонстраций и быстрого доказательства концепций, но им не место в производственном приложении» – Colin

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