我的情況是這樣的:我有一個基地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