【发布时间】:2018-10-04 21:00:43
【问题描述】:
查看示例实体:
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 等实体列表,这在我看来有点乏味。
第三,每次都包含导航属性,即使它们看起来毫无意义是不是错了?
如果您因为不清楚的问题或任何其他原因决定关闭此问题,请至少先引导我找到正确的方向。
【问题讨论】:
标签: entity-framework entity-framework-core