NHibernate累积查询条件

NHibernate累积查询条件,nhibernate,queryover,Nhibernate,Queryover,我想做一种过滤链,使用queryOver功能过滤收据对象。 根据用户在屏幕上选择的参数,链条的长度可以不同 最终,我希望链条以如下方式运行: public IList<Receipt> RunFilters() { IQueryOver<Receipt, Receipt> currQuery = NHibernateHelper.Session.QueryOver<Receipt>(); foreach (var item in filter

我想做一种过滤链,使用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();
}
但我做不到

return prevFilter.JoinQueryOver(v => v.Store).Where(vv => vv.Name.Equals(m_storeName));
有什么想法吗? 提前谢谢

胜利者

以上内容可以写成

Store storeAlias = null;
return prevFilter.JoinAlias(v => v.Store, () => storeAlias).Where(() => storeAlias.Name == m_storeName);

编辑:固定公式

谢谢!当我按原样复制它时,出现了一个异常,但在我将storeAlias.Name.Equals更改为storeAlias.Name==。。。成功了。
return prevFilter.JoinQueryOver(v => v.Store).Where(vv => vv.Name.Equals(m_storeName));
return prevFilter.JoinQueryOver(v => v.Store).Where(vv => vv.Name.Equals(m_storeName));
Store storeAlias = null;
return prevFilter.JoinAlias(v => v.Store, () => storeAlias).Where(() => storeAlias.Name == m_storeName);