EF 4 Entity Model вопрос дизайна - PullRequest
1 голос
/ 21 февраля 2011

У меня есть созданная модель данных, в которой еще нет данных. Используя Visual Studio 2010, я сгенерировал свой файл .edmx (модель данных объекта) из этой базы данных. Я чувствую, что в моей БД, вероятно, есть несколько FK, которые мне не нужны в моей модели сущностей.

Какова наилучшая практика для определения необходимых свойств навигации в моей модели данных объекта? О чем мне следует думать, когда я смотрю на каждую сущность и пытаюсь определить, нужно ли свойство навигации или нет.

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

Также, что является наилучшей практикой при определении того, нужен ли FK или нет в моей модели данных.

1 Ответ

1 голос
/ 22 февраля 2011

Почему вы включили ФК в базу данных? Вы, вероятно, использовали их для установления некоторой ссылочной целостности, не так ли? В таком случае оставьте свои FK в БД и позвольте EF включить их в вашу модель.

Файл EDMX состоит из нескольких частей - модели хранения, концептуальной модели и сопоставления между моделями (в нем также есть информация о конструкторе, но это не интересно). Когда вы добавляете таблицы в EDMX, они описывают их в модели хранения вместе со всеми FK (ассоциациями). Он также создает ассоциации в концептуальной модели и добавляет свойства навигации к сущностям.

Обновление из базы данных не влияет на ваши изменения концептуальной модели (сущностей). Если вы удалите свойство навигации, оно не будет добавлено при следующем обновлении модели, но FK все равно будет существовать.

Решение оставить свойство навигации или убрать ее трудно наверстать. Вы увидите это во время разработки вашего приложения. Это также может быть введено некоторыми правилами в вашей доменной модели. Иногда вам нужно написать сложный запрос Linq-to-entity. Свойства навигации очень удобны при написании запросов, потому что они могут спасти вас от написания большого количества левых объединений в Linq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...