1

我撰寫NHibernate的查詢,我怎麼能得到criteries的計數標準像criterion.GetCountOfCriteries()如何使用標準</p> <pre><code>Junction criterion = Restrictions.Conjunction(); criterion.Add(something1); criterion.Add(something2); .... criterion.Add(somethingN); </code></pre> <p>得到結criteries的計數NHibernate的

結的源代碼,我看到的list評論

private readonly IList<ICriterion> criteria = new List<ICriterion>(); 

但它有修飾符作爲私人。

有些想法?

回答

2

這是不可能的。它並不是打算。爲什麼?因爲我們使用ICriteria API而不是其實現(我們可以在代碼或調試器中看到)

那麼,是否會有不同實現的ICriteria的......沒有人可以授予會有一些readonly ILIst<ICriterion>在所有...

作爲一個解決方案,我建議 - 做ICriteria API的那個之外(if really needed)。而且,也許嘗試重新檢查是否需要這些信息。

+0

臨時,我實現了我的自定義連接點,它具有屬性Count 'public int Count {get {return criteria.Count; }}' 然後實現從MyJunction繼承的自定義Conjunction和Disjunction類。這是不錯的做法嗎? –

+1

這就是輝煌的解決方案。爲什麼?因爲1)首先不僅證明了NHibernate的可擴展性的概念2)它確實給了你管理你的東西的能力。因爲,您需要在NHibernate API中添加期望的對象(接口)(實現publisehd API,例如'ICriterion')*,同時保持私有特性獨立於NHibernate API。偉大的解決方案。這就是所謂的OOP;););) –

相關問題