#entity-framework-4.1 #ef-code-first
#entity-framework-4.1 #ef-code-first
Вопрос:
Я подумываю о переходе от EF model first к code first. Преимущества кажутся мне достаточно ясными, и это кажется довольно интуитивным в использовании. Каковы недостатки по сравнению с model first? Какие подводные камни я должен подозревать?
Ответ №1:
Существует множество недостатков:
- Вы должны написать весь код самостоятельно
- У вас меньше контроля над генерацией базы данных
- У вас нет поддержки Database power pack для инкрементной разработки базы данных (в code first есть миграции SQL, но они все еще находятся в бета-версии и не предоставляют того же набора функций, что и power pack)
- Вы потеряете некоторые базовые и почти все расширенные функции отображения (но эти расширенные функции обычно в model first все равно не используются).
- Скорее всего, вы будете использовать DbContext API
- Для вас это будет ново (если только вы уже не используете его с model first)
- Вам все равно придется возвращаться к ObjectContext API в более сложных случаях, потому что DbContext API предназначен только для простейших задач
- В нем могут быть дополнительные ошибки, а иногда его производительность даже хуже, чем у ObjectContext API
- IMHO после нескольких месяцев использования и следующих тегов EF на SO, я думаю, что он все еще довольно незрелый
В любом случае DbContext API является основным. Поскольку .NET 4.5 DbContext API будет Entity Framework, а ObjectContext API будет основными библиотеками Entity Framework. Это определенно означает, что DbContext API — это то, что ADO.NET команда хочет продвигаться вперед.
Комментарии:
1. Спасибо за это резюме. Итак, суть может заключаться в том, что code first больше подходит для быстрой / краткосрочной разработки, а model first — для того, чтобы охватить все возможные варианты в долгосрочной перспективе..