C# Fluent NHibernate多对多中的Where子句
我正在尝试在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假定它是
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");