我正在使用實體model.i更新了一個名爲SalesDetialView的視圖。使用實體模型中的視圖不打印重複值
在salesdetialview中,我有3個實體鍵。有1.型號2.No,3.Custmor
SQL:我使用此查詢(我打印僅有5列)
選擇客戶,類型,沒有,營業員,量SalesDetailView
但通過實體模型,我沒有得到重複值(否)。看到這個屏幕下方
現在我有疑問,爲什麼它沒有顯示重複的值。任何與實體鍵或任何事物相關的事物。請建議我在哪裏做錯了。
我正在使用實體model.i更新了一個名爲SalesDetialView的視圖。使用實體模型中的視圖不打印重複值
在salesdetialview中,我有3個實體鍵。有1.型號2.No,3.Custmor
SQL:我使用此查詢(我打印僅有5列)
選擇客戶,類型,沒有,營業員,量SalesDetailView
但通過實體模型,我沒有得到重複值(否)。看到這個屏幕下方
現在我有疑問,爲什麼它沒有顯示重複的值。任何與實體鍵或任何事物相關的事物。請建議我在哪裏做錯了。
如果多個行在主列中共享相同的值,則只有第一個似乎從數據庫中檢索並複製到這些其他行中。舉例來說,如果一組有2列,第一個是標記爲主列,
the correct result should be:
A, 1
A, 2
B, 4
B, 6
B, 7
C, 5
The actual result in code with Entity Framework would become:
A, 1
A, 1
B, 4
B, 4
B, 4
C, 5
當包括在你的實體模型的視圖,該模型似乎簡單地使用先不要空列作爲主鍵(因爲主鍵中使用的所有列應該是不可空的)。 要解決此問題,請確保正確選擇主鍵列。如果您無法創建正確的主鍵,因爲有空值或者沒有設置每列不同的列,請嘗試向您的視圖添加一列,該列始終包含每行的唯一值。添加完成後,請確保將其設置爲實體模型中的主鍵。
如果我將這兩行設置爲上述示例中的主要列,我會得到所需的結果。
使用主列我們不顯示重複。但在我看來,它沒有PK列。當在sql中運行quary時,它顯示所有行。但不是通過實體模型。 – Kavitha
你可以通過改變ObjectSet
的合併選項來解決它。例如:
using (TargetDBDataContext db = new TargetDBDataContext())
{
db.SomeView.MergeOption = System.Data.Objects.MergeOption.NoTracking;
return db. SomeView.ToList();
}
EF發出什麼查詢? –