【问题标题】:Return TSubType from nhibernate QueryOver从休眠 QueryOver 返回 TSubType
【发布时间】:2011-07-22 01:22:57
【问题描述】:

我正在尝试在 nhibernate 中使用 QueryOver 从父集合中选择子集合。 这就是我在 HQL 中尝试做的事情:

SELECT as_kitten FROM Cat as_Cat 
JOIN as_Cat.Kittens as_kitten 

这如何转化为 QueryOver 甚至使用 JoinAlias?

IList<Kitten> kittens =  session.QueryOver<Cat>()
        .JoinQueryOver<Kitten>(c => c.Kittens)
        .Select(??)
        .List()

到目前为止我能找到的最接近的是NHibernate QueryOver

干杯

编辑 假设这是一种单向关系,即。小猫不知道猫

【问题讨论】:

标签: nhibernate hql queryover nhibernate-criteria


【解决方案1】:

您的示例似乎相当琐碎。如果您已经拥有父级并且在 cat 实体中将集合映射为一对多,那么如果您延迟加载,您所要做的就是访问该集合。

如果你只有父母的 id,你可以轻松地做这样的事情,甚至不需要加入:

IList<Kitten> kittens =  session.QueryOver<Kitten>()
        .Where(k => k.CatId == <parent cat id here>)
        .List<Kitten>()

【讨论】:

  • 这就是我目前所拥有的。我必须使关系成为双向的,但真正的领域模型只有一种方式的关系。有没有办法为单向模型做到这一点? (我应该在我的问题中说一种方式的关系,对此感到抱歉)。如果没有办法做到这一点,我会把这个作为答案。
猜你喜欢
  • 2015-04-16
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
相关资源
最近更新 更多