2015-06-22 60 views
3

即使數據庫中存在匹配的記錄,下面的查詢也不會產生任何結果。 enter image description here實體框架查詢的奇怪行爲

  • 即使在DB執行產生將產生的結果的查詢。
  • 另外,查詢在將「order by」添加到查詢中時會生成結果。
  • 查詢參數沒有變化。
  • 相同的查詢適用於開發數據庫,​​在QA數據庫中不會產生任何結果。
  • 與Dev相比,QA數據庫沒有變化。

enter image description here

+0

通常是關係到一個錯誤的連接字符串(所以如果你使用了錯誤的連接字符串這個EF創建DB和表是結果,但這不是你的情況)或與EF提供商有關。如果在FirstOrDefault之前將行var var currentDept分割,您將看到EF在DB上運行的查詢。看看有什麼區別(在這種情況下是在EF提供者工作之後,您最終可以看到EF提供者錯誤)。 – bubi

+1

是不是隻是'ADMINGROUP'爲'第一個**'結果爲空時不是'DEPARTEMENT'排序的,而它對於**排序後的第一個**結果不爲空? (您使用'FirstOrDefault') – manji

+0

您使用firstordefault並且您的記錄將爲空。但是當你按照記錄順序改變順序時,第一條記錄必須有一個值,即爲什麼你在第二條查詢中看到的記錄不在第一條查詢中。 –

回答

0

我認爲你需要添加過濾器的ADMINGROUP

var currentDept = (from d in dbContext.TBLZLISTDEPTs 
where d.ADMINGROUP != null 
select new 
{ 
    d.ADMINGROUP 
}).FirstOrDefault();