1. 程式人生 > >EF 查詢視圖返回重復數據的問題

EF 查詢視圖返回重復數據的問題

自動 特殊 not 字段 AS 返回 復數 區分 mage

在特殊的情況下查詢過濾視圖 會出現重復的數據結果集(返回的多條數據結果一致)。

原因是啥:主鍵

在數據庫設計的理念中:每個表都應該的唯一的主鍵。但視圖不同,EF中會自動按視圖的最前幾個非空型字段設置為主鍵。

技術分享圖片

如果在某些特殊的查詢情況下。前幾列數據一致時,EF就會返回重復數據。

解決方案:

1. 在使用的視圖後 加入 AsNoTracking 阻止EF緩存數據集。(EF會依據主鍵建立數據緩存,實現後續的級聯操作)。

2. 修改視圖列順序,將能區分內容的列放入最前列中,並保證為非空類型。

建議使用第二方案。

EF 查詢視圖返回重復數據的問題