Код EF 4.1 только? - PullRequest
       13

Код EF 4.1 только?

5 голосов
/ 17 июня 2011

Насколько я могу судить (поправьте меня, если я ошибаюсь), существует два основных подхода к использованию Entity Framework:

  1. Model First: начните с предопределенной базы данных и позвольте EF создать код для вас.
  2. Code First: напишите код и позвольте EF создать базу данных для вас.

У меня есть база данных, и я хотел бы написать код сам. Поддерживается ли этот подход «только код»? Имеет ли такой подход смысл в контексте EF?

Ответы [ 5 ]

5 голосов
/ 17 июня 2011

Я не согласен с большинством других ответов. Из того, что я видел, технология EF «Code First» - это на самом деле просто способ определить вашу модель, используя условные обозначения, аннотации или свободное отображение, а не файл EDMX. Если вы напишите свои файлы «Code First» для зеркального отображения схемы базы данных, нет никаких причин, по которым Entity Framework не сможет генерировать соответствующие запросы и операторы, используя LINQ to Entities.

Для получения дополнительной информации см. Сообщение Скотта Гатри на Использование EF "Code First" с существующей базой данных .

2 голосов
/ 17 июня 2011

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

1 голос
/ 17 июня 2011

Команда Entity Framework ответила на эти вопросы в своем блоге: http://blogs.msdn.com/b/adonet/archive/2011/03/07/when-is-code-first-not-code-first.aspx

1 голос
/ 17 июня 2011

Ну, я думаю, что в этом случае у вас не может быть своего торта и съесть его - должен быть один определенный источник информации о вашей модели, это либо база данных (сначала БД), который затем генерирует соответствующий код для вас, или код (сначала код), который затем создает соответствующую БД.

1 голос
/ 17 июня 2011

Я считаю, что вы должны решить, какая у вас система ссылок - код (Code First) или база данных (Model First).Если у вас есть существующая база данных, а затем используйте подход Code First, будет трудно синхронизировать ваши изменения, не генерируя вашу модель из вашего кода или ваш код из вашей модели.

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

Если вы хотите вручную отобразить код EF4 и базу данных, вы можете рассмотреть такой подход.Однако это исключает некоторые преимущества ORM, который заключается в настройке сопоставления для вас.

...