带引用表的nHibernate查询

带引用表的nHibernate查询,nhibernate,fluent-nhibernate,nhibernate-mapping,orm,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Orm,我对流利的nhibernate和标准有问题 我有以下设置 class AMap : ClassMap<A> { Id(x => x.Id); ... HasMany<Connection>(x => x.Connection).Inverse().ReadOnly(); } class BMap : ClassMap<B> { Id(x => x.Id); ... HasMany<Connectio

我对流利的nhibernate和标准有问题

我有以下设置

class AMap : ClassMap<A>
{
   Id(x => x.Id);
   ...
   HasMany<Connection>(x => x.Connection).Inverse().ReadOnly();
}

class BMap : ClassMap<B>
{
   Id(x => x.Id);
   ...
   HasMany<Connection>(x => x.Connection).Inverse().ReadOnly();
}

class CMap : ClassMap<C>
{
   Id(x => x.Id);
   ...
   HasMany<Connection>(x => x.Connection).Inverse().ReadOnly();
}

class ConnectionMap : ClassMap<Connection>
{
   References(x => x.A);
   References(x => x.B);
   References(x => x.C);
}
这就是我想要的。但在选择之后,它会继续选择连接c引用的其他实体


有没有办法告诉nHibernate在没有投影的情况下不要在结果中包含c的列?或者我必须使用hql进行此查询?

投影正是为此目的而构建的。你为什么不使用它呢?投影就是为了这个目的而建立的。你为什么不使用它?
session.CreateCriteria<A>()
      .CreateAlias("Connection", "c")
      .CreateAlias("c.B", "b")
      .Add(Expression.Eq("b.Id", 55))
      .List<A>() as List<A>;
select this_.Id as y0_,
       ...(more A properties)
       b.Id as b0_,
       ...(more B properties)
       c.AId as c0_,
       c.BId as c1_,
       c.Cid as c2_
from A this_ inner join 
Connection c on this_.Id = c.A.Id
inner join c.B b on b.Id = c.B.Id
where b.Id = 55