2013-02-26 122 views
0

我在DBML中使用視圖,大部分視圖都映射到表。 我有與EVENTCODE視圖相關的CR視圖。我將上下文設置爲將SQL記錄到Console.Out,然後運行直接針對數據庫生成的SQL。我收到3條記錄。 但是,當我在Linq中運行select到SQL(在上下文上設置LoadOptions以配合EVENTCODE表)時,我在CR.EVENTCODE中只有1條記錄。 視圖之間的聯繫是正確的(與在數據庫中相同)。我可以調用context.EVENTCODEs.Where ...並且還獲得3條記錄。但通過CR對象提取相關的EVENTCODE記錄只返回1. 我還應該檢查什麼?Linq to SQL丟失記錄

回答

0

問題在於EVENTCODE視圖上標識爲主鍵的字段沒有唯一標識視圖中的記錄。所有返回的記錄都具有相同的鍵值,因此EntitySet正在添加第一條記錄,並忽略後續記錄,因爲它們具有與集合中相同的鍵。 我將視圖更改爲使用組合鍵(跨4個字段),現在相關記錄編號爲3.