我的情况是这样的:我有一个基地NHibernate的查询的形式来运行(我使用的DetachedCriteria编码,但使用SQL语法在这里形容它):在NHibernate的,我怎么合并两个实例的DetachedCriteria
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和查询的'dynamic'组件。我需要将这两者合并成一个可以在NHibernate会话中执行的最终查询。
DefaultCriteria.Add()需要一个ICriterion(它是使用Expression类创建的,也可能是其他类,我不知道哪个可以解决我的问题)。
有谁知道我会怎么做我想要的?
谢谢肯特。发布问题后我得出了同样的结论。 我已经改变了我的'UI'(其实际DTO工厂代码,不是真正的用户界面)来生成ICriterion。 关于把自己从ORM中分离出来的好处 - 我应该创建自己的标准来描述类,然后使用它们来生成合适的NHibernate标准。 – Trevor 2010-04-13 06:43:37