QueryObjectオブジェクトを切り離し、2番目の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
この2つの基準オブジェクト間でAND条件をマージ/結合/追加することは可能ですか?このようなもの(もちろん、AddメソッドはICriteriaタイプを受け入れないため、次のコード行は機能しません):
detached.DetachedCriteria.GetExecutableCriteria(session).Add(criteria).List<Theme>();
私が達成したい理由は次のとおりです。
- GlobalThemeクエリには、他の基準と混合できるいくつかの条件があります
- ICriteria基準には、他の基準と混合できる他の条件があります(将来、QueryObjectにリファクタリングします)
結果として、n個の可能な基準のすべての組み合わせを処理するには、少なくともn*n個のQueryObjectsを作成する必要があります。2つ以上の基準をANDすることが可能な場合は、n * QueryObject *タイプのみを作成する必要があります。
ありがとう