Nhibernate 具有子集合的三元映射上的HQL

Nhibernate 具有子集合的三元映射上的HQL,nhibernate,hql,Nhibernate,Hql,我有一个问题要写 鉴于以下模型: public class A : Entity<Guid> { public virtual IDictionary<B, C> C { get; set; } } public class B : Entity<Guid> { } public class C : Entity<Guid> { public virtual int Data1 { get; set; } public

我有一个问题要写

鉴于以下模型:

public class A : Entity<Guid>
{
    public virtual IDictionary<B, C> C { get; set; }
}

public class B : Entity<Guid>
{
}

public class C : Entity<Guid>
{
    public virtual int Data1 { get; set; }
    public virtual ICollection<D> D { get; set; }
}

public class D : Entity<Guid>
{
    public virtual int Data2 { get; set; }
}
但我无法编写一个工作的HQL

我能够编写类似于以下的内容,在C.Data1上进行过滤:

from A a
where a.C[:b].Data1 = 0
但是我无法对a.C[:b].D的元素执行任何操作(我会遇到各种解析异常)

以下是您感兴趣的映射(没有什么特别的,由ConfORM生成):



谢谢

好吧,看来我得更努力了:-)

我建立了
B
C
之间的双向关系,因此我可以编写以下HQL:

from A a, D d
where a.C[:b] = d.C
and d.Data2 = 0
<class name="A">
  <id name="Id" type="Guid">
    <generator class="guid.comb" />
  </id>
  <map name="C">
    <key column="a_key" />
    <map-key-many-to-many class="B" />
    <one-to-many class="C" />
  </map>
</class>
<class name="B">
  <id name="Id" type="Guid">
    <generator class="guid.comb" />
  </id>
</class>
<class name="C">
  <id name="Id" type="Guid">
    <generator class="guid.comb" />
  </id>
  <property name="Data1" />
  <bag name="D">
    <key column="c_key" />
    <one-to-many class="D" />
  </bag>
</class>
<class name="D">
  <id name="Id" type="Guid">
    <generator class="guid.comb" />
  </id>
  <property name="Data2" />
</class>
from A a, D d
where a.C[:b] = d.C
and d.Data2 = 0