Навигационные свойства сущностей в EF Core - PullRequest
0 голосов
/ 04 октября 2018

См. Примеры объектов:

Customer
    * Id
    * Name

Product
    * Id
    * Name
    * Price

PurchaseOrder
    * Id
    * CustomerId
    * Customer

PurchaseOrderItem
    * Id
    * PurchaseOrderId
    * PurchaseOrder
    * ProductId
    * Product
    * Quantity
    * Price

Как видите, PurchaseOrder ссылается на Customer, а PurchaseOrderItem ссылается на PurchaseOrder и Product.

Мой вопрос: должны ли ссылочные объекты, такие как Customer, Product и PurchaseOrder, иметь свойства навигации?См. Измененные объекты:

Customer
    * Id
    * Name
    * PurchaseOrders (list) <----- added

Product
    * Id
    * Name
    * Price
    * PurchaseOrderItems (list) <----- added

PurchaseOrder
    * Id
    * CustomerId
    * Customer
    * PurchaseOrderItems (list) <----- added

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

Мой второй вопрос: если я не включу свойства навигации, с какими последствиями я могу столкнуться,конкретно в EF Core?Одна вещь, о которой я мог подумать, - это ручное присоединение к списку объектов, таких как Product и PurchaseOrerItem, что, на мой взгляд, немного утомительно.

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

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

1 Ответ

0 голосов
/ 04 октября 2018

Существуют ли инструкции о том, когда включать свойства навигации?

Для отношений 1-Много

Всегда иметь одноэлементное свойство навигации для объектов с внешними ключами.

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

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