我在我的應用程序下面的代碼LINQ到SQL代碼沒有返回結果,即使生成的SQL不會返回結果
var query = context.xosAssets.Where(x => x.GSA == 0).Take(INDEX_ASSET_QUERY_COUNT);
var assets = query.ToList();
// Debug
string message = string.Format("Assets waiting for indexing: {1}{0}Database:{3}{0}Query: {2}",
Environment.NewLine, query.Count(), query.ToString(), context.Connection.Database);
System.Diagnostics.EventLog.WriteEntry("GSAFeed", message, System.Diagnostics.EventLogEntryType.Information);
在運行此,query.Count()
爲零,assets.Count
是零,因爲沒有結果返回。但是,這是不正確的,因爲此數據庫中的所有記錄都將其GSA
字段設置爲零。
當我從query.ToString()
輸出並運行它(替換爲0 @p0
),我得到的所有的正確答案。我已經驗證了我「完全相同的數據庫M上爲正在context.Connection.Database
輸出,我跑出來的什麼可能是錯誤的選擇。
爲什麼LINQ到SQL沒有返回結果,即便是實際的SQL不?
什麼是'INDEX_ASSET_QUERY_COUNT'設置? – 2012-03-09 15:58:53
什麼數據類型是'.GSA'? – 2012-03-09 15:59:10
'GSA'是一個short,而'INDEX_ASSET_QUERY_COUNT'是一個int const,設置爲250,它在輸出SQL中的TOP()調用中正確顯示。 *編輯*前夕沒有頂部通話它仍然失敗。 – KallDrexx 2012-03-09 16:00:56