Сначала код EF 4.1 с существующей базой данных. Отображение Fks, таблицы и т. Д. Требуется уточнение - PullRequest
0 голосов
/ 25 апреля 2011

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

Я немного запутался в том, что хотел сделать. Я объясню:

  • Нужно ли создавать конфигурацию сущностей для каждой таблицы в моей существующей базе данных?
  • В этой конфигурации EntityConfiguration для каждой таблицы мне нужно создавать отношения внешнего ключа?
  • Нужно ли мне составлять таблицу ToTable для каждой таблицы в моей существующей базе данных?
  • Есть ли какой-нибудь бесплатный инструмент "codeplex", который, указывая на существующую базу данных, будет генерировать этот материал codeFirst?

Мне показалось, что несколько блогов о "EF Code сначала с существующим БД", но я не уверен или мне не совсем понятно, если мне нужно создать этот материал, или я получу странные ошибки, такие как "MyColumn_MyColum", в основном, какесли codeFirst пытается создать несколько FK или что-то в этом роде.

Может кто-нибудь уточнить?большое спасибо.Я знаю, что есть несколько вопросов, но если вы можете ответить на 01 или 2. это было бы хорошо.

еще раз спасибо

1 Ответ

1 голос
/ 25 апреля 2011

Если вы хотите, чтобы код генерировался для вас, используйте подход на основе базы данных с DbContext API .Просто создайте файл EDMX из вашей базы данных и позвольте шаблону DbContext Generator сгенерировать для вас все сущности и контекст.

DbContext Fluent API в основном предназначен для подхода, основанного на разработке кода, когда EF создаст для вас базу данных из кода, который выпредоставлена.Он может использоваться с существующей базой данных, но требует гораздо больше навыков и понимания картографии, которые EF может предоставить вам.

Обычно:

  • Вам не нужно указывать EntityConfiguration для каждой таблицы, если вы следуете некоторым соглашениям об именах (имя сущности является единственной формой имени таблицы, все свойства имеютто же имя, первичный ключ в таблице и сущность именуются как Id или EntityNameId и т. д.).
  • Вам не нужно определять отношения вручную, если вы следуете соглашениям, предоставляя свойства навигации и, возможно, свойства внешних ключей.Проблема может заключаться в присвоении имен многим ко многим ключам и соединительным таблицам.
  • ToTable требуется только в том случае, если ваша сущность не соблюдает соглашение об именовании или если вы отображаете какое-то предварительное наследование или разбиение.

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

Вы не будете делать ничего плохого, если определите EntityConfiguration для каждой таблицы - это по крайней мере позволит вам узнать, что необходимо, и ваше отображение будет явным / самодокументированным.

...