2010-02-10 39 views
4

我試圖建立在良好NHibernate的一個多一對多映射具有附加到子表where子句。凡在功能NHibernate條款多到很多

這基本上是它應該是如何工作的:

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

的ImageTypeID列在表中的圖像,但NHibernate的是假設它是ProductImages表的一部分。任何想法如何可以指定此?

謝謝!

回答

0

你不能據我所知。我不確定哪個在many-to-many關聯中有效。

我會通過上IEnumerable<Image>創建擴展方法以允許在圖像類型容易濾波處理這個問題。然後,您可以調用Images.Landscape(),例如,在任何圖像集合上。

10

你可以。使用.ChildWhere在功能NHibernate映射:

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