簡體   English   中英

EF Core中實體的導航屬性

[英]Navigation Properties of Entities in EF Core

查看示例實體:

Customer
    * Id
    * Name

Product
    * Id
    * Name
    * Price

PurchaseOrder
    * Id
    * CustomerId
    * Customer

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

如您所見, PurchaseOrder引用CustomerPurchaseOrderItem引用PurchaseOrderProduct

我的問題是,諸如CustomerProductPurchaseOrder類的引用實體是否應具有導航屬性? 查看修改后的實體:

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屬性的Product沒有任何意義。

我的第二個問題是,如果不包括導航屬性,那么我可能會面臨哪些影響,特別是在EF Core中? 我能想到的一件事是手動加入諸如ProductPurchaseOrerItem類的實體列表,我認為這有點乏味。

第三 ,即使每次導航屬性看起來都沒有意義,這是否錯誤?

如果您由於不清楚的問題或任何其他原因決定關閉此問題,請至少首先引導我朝正確的方向發展。

有關於何時包括導航屬性的指南嗎?

對於一對多關系

帶有外鍵的實體上始終具有單例導航屬性。

通常使用集合導航屬性。 它們很方便,但是您通常會最終使用它們。 引用類型的實體例​​外,可以由多個不相關的實體引用。 例如位置,組織,貨幣等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM