我有一个分离的QueryObject对象,我有第二个ICriteria对象标准。
ICriteria criteria = session.CreateCriteria<Theme>()
.CreateAlias("InceptionCycle", "ic", JoinType.LeftOuterJoin)
.CreateAlias("ClosingCycle", "cc", JoinType.LeftOuterJoin)
.Add(Restrictions.Le("ic.CycleMonth", cycleDate))
.Add(Restrictions.Or(
Restrictions.IsNull("cc.ID"),
Restrictions.Ge("cc.CycleMonth", cycleDate)));
QueryOver<Theme, Theme> detached = new GlobalTheme().GetQuery();
// and now how to make new query : detached AND criteria
是否可以在这两个条件对象之间合并/加入/添加 AND 条件?像这样的东西(当然下面的代码行不起作用,因为 Add 方法不接受ICriteria类型):
detached.DetachedCriteria.GetExecutableCriteria(session).Add(criteria).List<Theme>();
我想实现的原因是:
- GlobalTheme查询有一些条件可以与其他条件混合
- ICriteria 标准有其他条件,我也可以与其他标准混合使用(我将来会将其重构为 QueryObject)
因此,为了处理n可能标准的所有组合,我必须至少创建 n*n QueryObjects。如果可以 AND 两个或多个条件,我只需要创建n * QueryObject * 类型。
谢谢