Я хочу создать своего рода цепочку фильтрации для фильтрации объектов Receipt с использованием функции queryOver.Цепочка может отличаться по длине, в зависимости от параметров, которые пользователь выбирает на экране.
В конце концов, я хочу, чтобы цепочка работала примерно так:
public IList<Receipt> RunFilters()
{
IQueryOver<Receipt, Receipt> currQuery = NHibernateHelper.Session.QueryOver<Receipt>();
foreach (var item in filters)
{
currQuery = item.RunFilter(currQuery);
}
return currQuery.List();
}
Итак, вопрос -как RunFilter должен быть определен?Я думал, что это должно быть
public IQueryOver<Receipt, Receipt> RunFilter(IQueryOver<Receipt, Receipt> prevFilter)
, и они могут делать фильтры вроде
return prevFilter.Where(receipt => receipt.TotalSum > 0);
Но я не могу сделать
return prevFilter.JoinQueryOver(v => v.Store).Where(vv => vv.Name.Equals(m_storeName));
Есть идеи?Заранее спасибо
Виктор