Nhibernate 如何获取多个孙辈收藏

Nhibernate 如何获取多个孙辈收藏,nhibernate,linq-to-nhibernate,conform,Nhibernate,Linq To Nhibernate,Conform,我有以下表格结构: ReferralSource - main table -Phone - join table Rs as one-to-one - Carrier - child table for Phone - Type - child table for Phone 我想通过Linq查询得到它: Session.Query<ReferralSource>()

我有以下表格结构:

     ReferralSource - main table
      -Phone - join table Rs as one-to-one
         - Carrier - child table for Phone
         - Type    - child table for Phone
我想通过Linq查询得到它:

Session.Query<ReferralSource>()                
            .Fetch(x => x.Phone)
            .ThenFetch(x => x.Type)
            .Fetch(x => x.Phone)
            .ThenFetch(x => x.Carrier);

如何使用fetch删除重复的左连接?

如果您将电话映射为一个组件而不是一个实体,可能会这样

public ReferralSourceMap()
{
    Join("Phones", join =>
    {
        join.KeyColumn("...");
        join.Component(x => x.Phone, c => { ... });
    });
}

编辑:不幸的是,这不适用于LINQ2NHibernate,只适用于Criteria和QueryOver。我应该删除答案吗?

如果您将手机映射为一个组件,而不是一个实体,可能会删除答案

public ReferralSourceMap()
{
    Join("Phones", join =>
    {
        join.KeyColumn("...");
        join.Component(x => x.Phone, c => { ... });
    });
}

编辑:不幸的是,这不适用于LINQ2NHibernate,只适用于Criteria和QueryOver。我应该删除答案吗?

我认为它对其他人有用。我认为它对其他人有用。