C# Fluent NHibernate多对多中的Where子句

C# Fluent NHibernate多对多中的Where子句,c#,.net,nhibernate,orm,fluent-nhibernate,C#,.net,Nhibernate,Orm,Fluent Nhibernate,我正在尝试在Fluent Nhibernate中设置多对多映射,该映射将where子句附加到子表 这基本上就是它的工作原理: HasManyToMany(p => p.Images) .Table("ProductImages") .ParentKeyColumn("ProductID") .ChildKeyColumn("ImageID") .Where("ImageTypeID = 2"); ImageTypeID列位于Images表中,但NHibernate假定它是

我正在尝试在Fluent Nhibernate中设置多对多映射,该映射将where子句附加到子表

这基本上就是它的工作原理:

HasManyToMany(p => p.Images)
  .Table("ProductImages")
  .ParentKeyColumn("ProductID")
  .ChildKeyColumn("ImageID")
  .Where("ImageTypeID = 2");
ImageTypeID列位于Images表中,但NHibernate假定它是ProductImages表的一部分。你知道我该怎么说吗


谢谢

据我所知,你不能。我不确定Where在关联上是否有效


我将通过在
IEnumerable
上创建一个扩展方法来处理这个问题,以便对图像类型进行轻松过滤。然后您可以调用Images.Landscape(),例如在任何图像集合上。

您可以。在流畅的NHibernate映射中使用.ChildWhere

HasManyToMany(p => p.Images)
  .Table("ProductImages")
  .ParentKeyColumn("ProductID")
  .ChildKeyColumn("ImageID")
  .ChildWhere("ImageTypeID = 2");