Entity Framework 4.1.Code first - явное использование внешних ключей в моделях - PullRequest
0 голосов
/ 23 ноября 2011

Все мои модели на данный момент имеют Id (первичный ключ), но ссылки на другие модели делаются без использования числовых идентификаторов, т.е. они являются объектными ссылками. Я ожидаю, что EF предоставит магию, которая заставит эту работу работать так, как я ожидаю ... что, похоже, сейчас. Тем не менее, я вижу много вопросов и примеров с явными целочисленными внешними ключами. Я что-то упускаю или ожидаю слишком многого от фреймворка - или это так, как он предназначен для использования?

1 Ответ

2 голосов
/ 23 ноября 2011

Вам не нужно явно объявлять внешние ключи. По умолчанию код EF сначала создает отношение один к одному со ссылкой на объект, а отношение один ко многим - с набором ссылок на объект. Единственное, что требуется, это первичный идентификатор.

Теперь явное объявление внешних ключей может быть удобным, если необходимо сопоставить определенное поле или работать с внешними ключами без учета связей. В моем проекте я также угрожаю своим сущностям (моделям в вашем случае) как DTO. Поэтому я не хочу, чтобы отношения существовали. Я использую явные внешние ключи для загрузки в другие данные, такие как:

var student = service.GetStudent();
var class = service.GetClassById(student.ClassId);

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

...