4

我有一個LINQ查詢有錯誤的結果,但是當我剖析生成的SQL時,SQL結果是正確的。LINQ to SQL查詢結果中有錯誤的值

ApplicationsEntities context = new ApplicationsEntities(); 
var query = from documentation in context.Documnetations 
      where documentation.Application_Version_ID == app_ver_id 
      orderby documentation.Name 
      select documentation; 
docs = query.ToList<Documnetation>(); 

我回來一式兩份: 「如何安裝Office 2003」 和 「如何安裝Office 2003」 enter image description here

下面是異形SQL的輸出: enter image description here

什麼可能會發生從生成的SQL分配結果?

+0

看起來像一個無證微軟功能,以防止人們從卸載他們的產品。嚴重:ToList()之後的結果仍然相同嗎?也許手錶是由基礎查詢的多次執行搞砸了? – 2012-02-23 16:34:45

+0

是的,toList()的結果不正確。即使原始結果也有不正確的值。 – 2012-02-24 00:08:52

回答

6

更新基於意見

你的LINQ查詢是好的,但在模型中,你必須設置主鍵/實體鍵

的LINQ到SQL

在您的dbml,您需要將主鍵從Application_Version_ID更改爲Documentation_Id

LINQ到實體

在你model,你需要改變你的實體鍵從Application_Version_IDDocumentation_Id

+0

我不會知道文檔ID,只有應用程序version_id。生成的sql檢索正確的結果。 – 2012-02-24 00:07:37

+2

@DaveHarding - 你的linq查詢很好,但在你的模型中你必須設置主鍵/實體鍵 – Aducci 2012-02-24 00:11:42

+0

就是這樣。你想發表一個正式的答案,我會接受嗎?非常感謝喲。我正在打我的頭時間! – 2012-02-24 00:38:08