我的场景是这样的:我有一个基本的 NHibernate 查询来运行表单(我已经使用 DetachedCriteria 对其进行了编码,但在此处使用 SQL 语法对其进行了描述):
SELECT * FROM Items I INNER JOIN SubItems S on S.FK = I.Key
显示此连接结果的用户界面允许用户指定其他条件:说:
I.SomeField = 'UserValue'.
现在,我需要最终的加载命令是:
SELECT * FROM Items I INNER JOIN SubItems S on S.FK = I.Key
WHERE I.SomeField = 'UserValue'
我的问题是:我用查询的“静态”方面(顶部连接)创建了一个 DetachedCriteria,而 UI 用查询的“动态”组件创建了一个 DetachedCriteria。我需要将两者组合成一个可以在 NHibernate 会话上执行的最终查询。
DefaultCriteria.Add() 采用 ICriterion (使用 Expression 类创建,也许其他我不知道的类可以解决我的问题)。
有谁知道我怎么做我想做的事?