Learning Entity Framework для использования с MVC. Какой подход выбрать в первую очередь?

Я новичок в MVC, а также в EF. Я решил понять вещи более четко, чтобы хорошо работать с этими технологиями.

Теперь я начал читать об EF и знал, что есть методы Model-first, Database-first и Code-first.

Я действительно хочу начать с того, который будет наиболее полезен для меня, так как я собираюсь разрабатывать с использованием MVC, а затем вернуться к двум другим и сравнить их.

Мой единственный вопрос, с какой техники мне следует начать и использовать?


person Rafael Adel    schedule 27.02.2013    source источник


Ответы (2)


Если я создаю новый веб-сайт, я бы определенно использовал Code First, потому что Code First:

  1. Будущее технологии (Entity Framework), все усилия Microsoft направлены на разработку этой новой технологии. (Я не сам это придумал, я прочитал это в статье одного из парней из Microsoft, извините, я не помню, кто).
  2. Он был создан для разработчиков DDD (Domain-Driven-Development), который наряду с TDD/BDD становится стандартом (сильное слово) или правильным способом создания программных систем.
  3. И, как следует из названия, вы можете сразу же начать программировать (что я люблю делать), а потом побеспокоиться о мелких деталях постоянства, что вам и следует делать.

Я бы выбрал Database First только в том случае, если мне вынужден работать с существующей базой данных.

Model First — это шаг вперед к Code First, поэтому на вашем месте я бы не стал отступать.

ПРИМЕЧАНИЕ. Ознакомьтесь с этим вопросом здесь, чтобы получить лучшее сравнение Сначала код Entity Framework по сравнению с моделью/базой данных

person Ibrahim Najjar    schedule 27.02.2013
comment
Мне любопытно, почему работа с существующей базой данных — ситуация по умолчанию в большинстве реальных корпоративных сред — является шагом назад. Мне дважды приходилось расторгать контракты из-за этой проблемы, когда подрядчик решил, что попытка сначала уничтожить существующие схемы базы данных и данные во славу кода была единственно правильным способом работы. Если я укажу, что у нас уже есть данные в контракте и сотни таблиц, и предоставлю схему базы данных и EF... почему нарушение контракта и использование кода в первую очередь будут такими... важными. Конец ярости. (Никакие данные не были потеряны, мы внимательно читаем код подрядчика.) - person Godeke; 01.03.2013
comment
@Godeke, ну, я не говорил, что подход Database First был шагом назад, ни использование Model First при работе с существующей базой данных, потому что эта БД, вероятно, разработана очень хорошими профессионалами в области баз данных, я имел в виду, что если я собираюсь для разработки новой системы я бы выбрал Code First, поскольку именно так движется разработка программного обеспечения, в противном случае, если система уже существует, я обязательно выберу сначала db или сначала модель. - person Ibrahim Najjar; 01.03.2013

Для нас мы основываем это на том, существует ли уже база данных. Во многих случаях у нас есть уже существующие базы данных, поэтому мы используем базу данных в первую очередь. Двигаясь вперед, мы предпочли создать базу данных, а затем построить на ее основе модель, так как у нас больше опыта в этом. Однажды я сделал code-first и обнаружил, что это мучительно, но вы получаете более точный контроль и лучше понимаете, что EF делает за кулисами.

Извините, я не мог дать лучший ответ.

person Mike C.    schedule 27.02.2013