Использование опции "Включить столбец внешнего ключа в модель" в мастере EF
Вы в основном используете эту опцию (по умолчанию отмечен) или вы снимаете галочку?
Я обнаружил, что когда у меня есть сущность столбца FK и свойство навигации на моих объектах, это приводит к проблемам с инструментами отображения - они могут связывать одно или другое, но почти никогда не оба.
Если бы мы строго следовали рекомендациям концептуальных моделей, я думаю, что эти столбцы никогда не должны соответствовать свойствам, не так ли?
Надеемся, что многие из вас ответят, чтобы мы могли лучше представить, что разработчики выбирают чаще.
1 ответ
Если бы мы строго следовали рекомендациям концептуальных моделей, я думаю, что эти столбцы никогда не должны соответствовать свойствам, не так ли?
Правильно - это то, что команда EF сделала в первом выпуске с.NET 3.5 SP1 - и получила массу очень негативных отзывов об этом.
Да, если говорить "чисто" - вы не должны использовать столбцы внешнего ключа напрямую - вместо этого вы должны использовать правильный способ работы с указанным объектом. Но на самом деле, во многих случаях - вам не нужно иметь дело со всей сущностью, на которую ссылаются, на самом деле - достаточно просто установить столбец внешнего ключа (например, при импорте данных или во многих других случаях).
Так что, хотя да - я согласен - иногда это просто хак, но я считаю большим плюсом, что у вас есть возможность использовать столбец внешнего ключа в сущности - в конце концов, на уровне базы данных это то, что вы Я тоже буду иметь дело с
Поэтому, на мой взгляд, и все рекомендации, которые я слышал от коллег, которые также используют EF в серьезной работе, и от всех блоггеров и EF-гуру (например, Джули Лерман, написавшую книгу об EF) - включите эту опцию, и вы получить лучшее из обоих миров!