Использование опции «Включить столбец внешнего ключа в модель» в мастере EF - PullRequest
10 голосов
/ 13 января 2011

Используете ли вы в основном эту опцию (установлен флажок по умолчанию) или вы ее снимаете?

Я обнаружил, что когда у меня есть сущности столбца FK и свойства навигации на объектах, это приводит к проблемам с инструментами отображения - они могут связывать одно или другое, но почти никогда не оба.

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

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

1 Ответ

13 голосов
/ 13 января 2011

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

Правильно - это то, что команда EF сделала впервый выпуск с .NET 3.5 SP1 - и получил массу очень негативных отзывов.

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

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

Так что, на мой взгляд, и все рекомендации, которые я слышал от коллег, которые также используют EF в серьезной работе, и от всех блоггеров и гуру EF (например, Джули Лерман, котораянаписал книгу по EF) - включите эту опцию, и вы получите лучшее из обоих миров!

...