2014-02-28 28 views
0

不同我有一個LINQ查詢,簡單地從已經存在我們的SQL Server的視圖對結果進行過濾。我遇到的問題是來自LINQ查詢的結果與SQL服務器上的結果不同。LINQ結果,從SQL Server視圖

首先我創建通過VS.嚮導中的EF連接我的一個基本的創建上下文:

using(Entities context = new Entities()) 
      { 

然後LINQ查詢很簡單:

var Active = context.vwUniqueParts 
.Where(a => a.HasOrders == true) 
.ToList(); 

的問題是,我得到的返回的數據重複的結果:

在那裏我會期望看到:第一部分 ,第2部分,第三部分,第四部分,第5部分,第6部分,第7部分,第8部分,Part9

我反而得到:第一部分 ,第2部分,第2部分,帕t2時,第2部分,第6部分,第6部分,第6部分,Part9

當查看結果某些結果將被重複,然後,同時它停止重複之後。當它停止重複顯示的部分對於它在數據集中的位置是正確的。

+1

你能告訴我們你的UniqueParts視圖,你就用手運行得到正確的結果SQL查詢?此外,您可以看到生成的SQL查詢使用的toString像'context.vwUniqueParts.Where(A => a.HasOrders == true),使cmpare的ToString()'...可能你指出正確的方向 –

回答

2

這聽起來好像模型上的主鍵不匹配數據庫。如果它們不同,你會發現結果集將返回奇怪的結果,如你在這裏看到的。

+0

這不是**答案**。您應該將其作爲**評論**發佈。 –

+0

對不起,對,你是對的。我會編輯它。 – user3358344

+0

我認爲它確實與SQL主鍵有關 - 它是一個生成的RowID,並且似乎沒有生成唯一鍵。我最終使用了不同的查詢,因爲我花費了太多的時間來調試小程序。我不確定解決方案是否能夠正常工作,但是這個答案幫助我使程序正常工作,所以我接受它作爲答案。 –