2011-06-30 44 views
1

我在SQL Server數據庫的視圖上使用Linq。具體的句子如下:Linq使用視圖的實體返回重複的值

var valoresFiltrados = Context.VDoNotUse_v2.Select(doNotUse => doNotUse).Where(doNotUse => doNotUse.PlatformValue.Equals(platform) && doNotUse.Bank.Equals(bank) && doNotUse.LanguageValue.Equals("CZE_CZ")).OrderBy(doNotUse => doNotUse.ID); 

其中VDoNotUse是視圖的實體。此示例返回重複的值(第一個ID爲例如12170,12171,12170,12171,12204 ...),並且這些值不是排序的,如示例中所示。不過,如果我使用的SqlDataAdapter以下列句子(我敢肯定是相當於LINQ的一個),它的工作原理,並返回正確的值:

"SELECT * FROM VDoNotUse_v2 WHERE PlatformValue = '" + platform + "' AND Bank = '" + bank + "' AND LanguageValue = 'CZE_CZ' order by id asc" 

當然,兩者都使用相同的連接和數據庫。

有沒有人知道爲什麼會發生這種情況?

回答

0

您需要確保您已將實體數據模型中的實體鍵正確設置到您的視圖中。我發現默認的實體鍵通常是錯誤的。