在流畅的nhibernate中从子对象中获取父对象

时间:2012-04-23 11:28:58

标签: c# nhibernate fluent-nhibernate

我有以下情况,其中'Parent'包含具有一对多关系的'Child'列表。

public class Parent
{
public virtual int Id { get; protected set; }
public virtual String Title { get; set; }
public virtual IList<Child> Child { get; set; }
}

public class Child
{
public virtual int Id { get; protected set; }
public virtual String Code{ get; set; }
}

在某些时候,我有一个'Child'类的对象,我想从中获取它各自的父对象。有什么建议怎么做?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

var childId = "..."; 

Child childAlias = null;
session.QueryOver<Parent>
  .JoinAlias(parent => parent.Children, () => childAlias)
  .Where(() => childAlias.Id == childId)
  .TransformUsing(Transformers.DistinctRootEntity)
  .SingleOrDefault();