C# NHibernate多对多关系:查询连接表的属性

C# NHibernate多对多关系:查询连接表的属性,c#,nhibernate,nhibernate-mapping,many-to-many,C#,Nhibernate,Nhibernate Mapping,Many To Many,抱歉,如果标题有点模糊,我有以下场景: 我的域模型中有三个表,如下所示: AddingOrder表和Product表之间存在多对多关系 在我拥有的产品实体中 public virtual IList<AddingOrder> AddingOrders { get; set; } public virtual IList<Product> Products { get; set; } 及其映射: <id name="Id" column="Id"> &

抱歉,如果标题有点模糊,我有以下场景: 我的域模型中有三个表,如下所示:

AddingOrder
表和
Product
表之间存在多对多关系

在我拥有的产品实体中

public virtual IList<AddingOrder> AddingOrders { get; set; }
public virtual IList<Product> Products { get; set; }
及其映射:

<id name="Id" column="Id">
  <generator class="native" >
  </generator>
</id>
<property name="Quantity" type="Decimal" column="Quantity" />
<many-to-one name="Unit" column="Id" not-null="true" class="Application.Domain.Entities.Unit,Application.Domain" />
如何使用NHibernate和上述映射编写此查询 为了简单起见,我省略了很多代码,AddingOrderProduct和其他两个表之间没有直接的一对多映射。对于单位实体来说,忘记它不是一个问题


提前感谢

不要使用多对多。使用从
Product
AddingOrder
AddingOrderProduct
的一对多以及代码中
AddingOrderProduct
的集合。

因此我必须删除两个表之间的两个多对多关系,并在AddingOrderProduct和另外两个表之间添加两个一对多关系,以便可以查询连接表中的属性没有比这更好的方法了???。但我不想这么做,我想使用多对多关系,现在它正在工作我有order.Products和product.Orders,我可以查询它们,这不是问题,问题是我如何查询联接表AddingOrderProduct上的属性,就像问题中提到的sql查询一样,thanks@MGA对我不知道还有别的办法。
<bag name="Products" generic="true" table="AddingOrderProduct">
  <key column="OrderId"/>
  <many-to-many column="ProductId" class="Application.Domain.Entities.Product,Application.Domain"/>
</bag>
public class AddingOrderProduct
{
    public virtual int Id { get; private set; }
    public virtual decimal Quantity { get; set; }
    public virtual Unit Unit { get; set; }
}
<id name="Id" column="Id">
  <generator class="native" >
  </generator>
</id>
<property name="Quantity" type="Decimal" column="Quantity" />
<many-to-one name="Unit" column="Id" not-null="true" class="Application.Domain.Entities.Unit,Application.Domain" />
select  p.Name ,aop.Quantity ,u.Name
from   Product p 
     inner join AddingOrderProduct aop on p.Id = aop.ProductId 
     inner join AddingOrder ao on ao.Id = aop.OrderId
     inner join Unit u on u.Id = aop.UnitId
where ao.Id = 1