閱讀之前downvoting或關閉:這個幾乎完全重複的previous question of mine是存在的唯一目的是改寫上一個問題到Linq-To-Sql範圍。上一個問題中包含的所有答案對Linq範圍均有效,但在Linq-To-SQL範圍內無效。如何重構多個類似的Linq-To-Sql查詢?
假設我有以下兩種LINQ到SQL查詢,我想重構:
var someValue1 = 0;
var someValue2= 0;
var query1 = db.TableAs.Where(a => a.TableBs.Count() > someValue1)
.Take(10);
var query2 = db.TableAs.Where(a => a.TableBs.First().item1 == someValue2)
.Take(10);
請注意,只有參數變化在哪裏。有什麼方法可以將查詢放在方法中並將Where參數作爲參數傳遞?
發佈在previous question中的所有解決方案都已經過嘗試,並且在嘗試枚舉結果時在運行時失敗。
引發的異常是:
Strangr,我想這兩種情況下: 表達> c1 = t => true; Console.WriteLine(db.Table1.Where(c1).Count()); Func c2 = t => true; Console.WriteLine(db.Table1.Where(c2).Count()); 他們給了我相同的結果,沒有運行時錯誤。 –
2009-05-14 20:04:27