1
嘗試使用LINQ提供程序爲NHibernate編寫動態查詢,但我遇到了問題。我的理解是,LINQ查詢被推遲,直到調用(即具有ToList()),所以我有以下代碼:無法獲得延遲的LINQ語句在nHibernate中工作
string[] filteredIds = new[] { "someIdNotInUse"};
var result = _products
.GetAll()
.Skip(0)
.Take(10);
if (filteredIds != null)
{
result.Where(x => x.Child1.Child2.Any(z => filteredIds.Contains(z.Child3.Id)));
}
var r = result.ToList();
的不施加在條件塊濾波器;當我運行.ToList時,我得到了我沒有預期的記錄。但是,如果我刪除了where過濾器並將其直接附加到_products調用,它將按預期工作。我誤解了LINQ提供程序的工作原理嗎?如何創建這樣的查詢,而不必爲每個可能的過濾條件和組合重寫查詢?