多表NHibernate查询



我有一个对象图,看起来像这样:

class A ()
{
   int id;
   IEnumerable<B> bees;
}
class B()
{
   int id;
   A a;
   C c;
}
class C()
{
   int id;
   D d;
   IEnumerable<B> bees;
}
class D()
{
   int id;
   IEnumerable<C> cees
}

构造一个查询的合理方法是:

返回a类型的列表,其中它们包含具有特定id的链的D。

我使用NH3,所以可以使用任何查询技术。我尝试了几种不同的方法,但每种方法似乎都陷入了死胡同。我有一个解决方案,在内存集合工作-但显然这是不理想的,我希望在DB服务器上完成的工作。

select distinct a from A a
inner join a.bees b
inner join b.c c
where c.d.id = :theSearchDId

这是假设所有的关联都是双向关联,而不是不相关的关联(即A.bees是B.a .的逆关联,等等)。

最新更新