我在我的數據庫中創建了一個特定視圖(用左連接加入大約5-6個表)。此視圖添加到我的edmx(實體框架1.0)。最近我注意到,使用EDMX(LINQ到實體,然後ToList())得到重複多次,但在數據庫中的觀點,他們是不同的數據庫視圖的實體框架結果差異
Column-N (Expected result/ result from DB view)
---------
data1
data2
data3
data4
data5
Column-N(Actual result generated by entity framework)
---------
data1
data1
data1
data1
data1
我啓動了我的SQL事件探查器獲得的列記錄之一,得到了由我的應用程序發送到SQL Server的查詢,運行它,它返回了我預期的結果。
MSDN有一個類似的帖子here和here但主持人還沒有詳細說明如何解決這個問題。我的鑰匙恰好是一個GUID
你所指出的根本原因,我認爲 是正確的,問題是在 應用端EF映射,如EF與 數據庫 不同對象的映射規則。當查詢結果從數據庫返回 時,EF 將根據自己設計的 邏輯在應用程序 上執行映射。
當您在數據庫端設計您的 視圖查詢時,考慮這些邏輯 是很重要的。我想 認爲你應該做一些調整 你的查看查詢。
我不知道你是否已經整理 的問題,如果不是請提供與此相關的 問題 數據庫結構和視圖查詢你有 寫的。
感謝賓澤
有人曾經遇到過類似的問題?
你說得對。我錯誤地認爲它是將我的GUID作爲主鍵,直到我去看了StorageModel和概念模型。它使用一些其他列作爲主鍵,因此也是一團糟。 通過手動更改密鑰(不使用VS2008 GUI) – ram 2010-06-24 15:48:35