2010-08-04 43 views
2

請考慮下面顯示的域模型(爲簡潔起見簡化 - 無ids等)。Customer只能對Product發表評論一次。讓我們假設(因爲我不想進入這裏)Customer類不能擁有它擁有的Review的集合。 Product是這裏的主聚集根。NHibernate的域建模問題/集合

通常在這種情況下,當檢索Product時,它只會出現在特定的Customer的上下文中。換句話說,我只會對屬於CustomerReviews系列的成員感興趣。

那麼,在檢索Product對象時,有沒有辦法將收集的人口限制爲與我提供的Customer相關的評論?這將如何在NHibernate中實現?這完全符合NHibernate的最佳實踐(以及較少程度的DDD)嗎?

public class Product 
{ 
    public virtual string Name { get; set; } 
    public virtual ISet<Review> Reviews{ get; set; } 

    public Product() 
    { 
     Reviews= new HashedSet<Review>(); 
    } 
} 

public class Review 
{ 
    public virtual string ReviewText { get; set; } 
    public virtual Customer Reviewer { get; set; } 
} 

public class Customer 
{ 
    public virtual string Name { get; set; } 
} 

感謝

回答

1

這可以通過使用NHibernate的過濾功能來實現;請參閱this article進行全面討論。

+0

再次感謝!我會讀一讀。 – UpTheCreek 2010-08-05 13:46:43