如何从NHibernate中统一结果集

时间:2009-05-01 07:02:36

标签: c# asp.net .net nhibernate

我有这些标准,这些标准非常有效,除了我在集合中获得多个相同的实体。我知道这是设计的,我知道你应该能够使用ResultTransformer来避免它,或者在查询后通过散列集过滤。

我的查询如下:

IMultiCriteria criteria = 
    session.CreateMultiCriteria()
           .Add(DetachedCriteria.For<Building>()
                  .Add(Restrictions.Eq("Id", BuildingId))
                  .CreateCriteria("Windows", JoinType.LeftOuterJoin)
                  .SetFetchMode("Shadows", FetchMode.Eager))
           .Add(DetachedCriteria.For<Building>()
                  .Add(Restrictions.Eq("Id", BuildingId))
                  .CreateCriteria("BuildingParts", JoinType.LeftOuterJoin)
                  .CreateCriteria("Windows", JoinType.LeftOuterJoin))

HashedSet过滤解决方案对我来说是不可能的,因为我无法将集合设置回实体 - 他们有私有的setter。

我已尝试ResultTransformerDistinctRootEntityResultTransformer,但我无法让它发挥作用。它不断返回集合BuildingPartsWindows中的多个相同实体。

有什么建议吗?或者如何让ResultTransformer工作?

0 个答案:

没有答案