我有兩個表:如何在Entity Framework中將多個表映射到單個實體,並使用外部聯接?
發票(ID,InternalPrice,ExternalPrice)
帳單摘要(InvoiceID,方差)
在這個應用中,我們有一個過程,通過發票表去,創造實體框架中的對象表示。應用程序必須計算(InternalPrice - ExternalPrice)之間的差異並將其存儲在Variance列中。
爲了允許實體框架在大量行(〜500萬)上有效地執行此操作,我已將計算結果分離爲單獨的表。這允許我使用對象表示來計算方差(加上其他業務邏輯),然後使用「SQL批量插入」將數據快速插入到數據庫中(比正常的實體更新快得多)。
我想合併發票& InvoiceSummary表成一個單一的實體對象,同時保持上述BCP的縱容單獨的表。但InvoiceSummary中可能並不總是有匹配的行。
它看起來像實體框架需要兩個表之間的1到1映射來實現合併的實體。 有誰知道我可以如何讓實體框架用0到1的映射表示?
如果我找不到實體框架解決方案,我可以使用視圖'隱藏'底層表結構。我正在使用支持可更新視圖的SQL服務器,所以這對EF應該是透明的?替代結構解決方案也是受歡迎的。
我試圖使用視圖來創建我正在尋找的實體結構。雖然SQL服務器支持可更新的視圖,但EF似乎創建了一個只讀實體對象。不幸的是,這不太符合我的要求,因爲我需要更新訪問權限。 我知道我可以手動更改EDML以允許更新應用於視圖,但是這些手動編輯需要在每次從數據庫更新模型時重新應用。這似乎是倒退了一步 - 除非有另一種方式? – Matt