Сначала изучаем EF-код: каковы недостатки по сравнению с model first?

#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 — для того, чтобы охватить все возможные варианты в долгосрочной перспективе..