Могу ли я отключить автоматические связи в Entity Framework Code First?

Я заметил, что Entity Framework все еще имеет множество «автоматических» функций в их последней версии. Как всегда, это поистине палка о двух концах.

В частности, я использую событие OnModelBuilder для создания моей модели «на лету» в коде с использованием fluentAPI (http://msdn.microsoft.com/en-us/library/hh295844(v=vs.103). aspx). У меня большой набор организаций, и не все они соответствуют «стандартам» Microsoft. Например, столбцы моего идентификатора называются Person_id вместо PersonId. Таким образом, Entity не всегда автоматически определяет первичный ключ в таблице или, по крайней мере, не делает этого.

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

Есть ли способ отключить функцию автоматической связи Entity, чтобы я мог быть на 100% явным в моем методе OnModelBuilder? Или, как минимум, как я могу узнать, когда мне нужно добавить дополнительные сведения о сопоставлении (например, необходимость объявить поле необязательным или когда конкретное свойство навигации не будет определяться автоматически)?

Спасибо!

8
задан Brett 30 November 2011 в 19:43
поделиться