我首先使用實體框架4.1代碼。我有經典的示例:Order和OrderLines。 每個OrderLine都有自己的價格,我想要有屬性TotalPrice on Order。如何在實體框架代碼中映射總和屬性(如TotalPrice)代碼優先
我不確定現在聲明TotalPrice屬性。我可以用linq sum將它定義爲readonly,但是當我每次將它添加到結果集時,它都必須從db中獲取所有的orderlines以便對它的價格求和。
我在考慮解決方案,它將總價存入數據庫(用於查詢)並且只在訂單保存之前重新計算(或者如果訂單行更改),但我不知道該怎麼做。
如何在EF中處理這樣的場景?
感謝建議 彼得
此解決方案不會將TotalPrice存儲在數據庫中,所以如果我需要顯示它,我必須始終重新計算,這就是我想要避免的。 – Petr
在這種情況下,'Order'是你的聚合根,因此它總是在'Order'的上下文中處理你的'OrderLine'實例的集合 - 它們會被延遲加載或加載'訂單'。因此,當您添加另一個'OrderLine'時,計算總價格變得任意,並且沒有真正的理由來存儲它。 – ataddeini
當我顯示訂單列表(名稱,客戶和總價)時,我想避免爲每個訂單加載OrderLines – Petr