0
我想要做一种过滤链来使用queryOver功能来过滤Receipt对象。 链条的长度可以根据用户在屏幕上选择的参数而有所不同。NHibernate累积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));
任何想法?提前
感谢维克多
谢谢!当我按原样复制它时,我得到了一个异常,但在将storeAlias.Name.Equals更改为storeAlias.Name == ...之后,它工作正常。 – Vic