【问题标题】:NHibernate FetchModeNHibernate FetchMode
【发布时间】:2012-01-07 06:39:03
【问题描述】:

我有一个父对象,它有一个子列表:

class Parent {Id, Name, IList<Child> children}
class Child {Id, Name}

我需要选择所有有孩子条件的父母,但我不想得到重复的行(不希望孩子的详细信息出现在选择列表中)

代码如下:

session.CreateCriteria(typeof(Parent))
.SetFetchMode("children", FetchMode.Select);
.CreateCriteria("children").Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
.List<Parent>();

查询将子类的所有属性添加到选择列表中,这会导致重复的父母。

有没有什么方法可以在选择列表中不包含孩子详细信息的情况下选择所有父母?

谢谢

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    一种可能的解决方案:

    session.CreateCriteria<Parent>()
           .CreateCriteria("children")
           .Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
           .SetResultTransformer(Transformers.DistinctRootEntity)
           .List<Parent>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多