2010-08-04 70 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