2010-08-04 6 views
2

Veuillez tenir compte du modèle de domaine présenté ci-dessous (par simplification pour simplifier - aucun nom, etc.) Un Customer peut commenter Product une seule fois. Supposons (pour des raisons que je ne veux pas entrer ici) que la classe Customer ne peut pas avoir une collection de Review s qu'elle possède. Le Product est la racine agrégée principale ici.Question/collections de modélisation de domaine avec NHibernate

Souvent dans cette situation, lors de la récupération du Product, ce sera seulement dans le contexte d'un Customer particulier. En d'autres termes, je ne serai intéressé que par les membres de la collection Reviews qui appartiennent à ce particulier Customer.

Donc, y at-il un moyen, lors de la récupération de l'objet Product, de restreindre la population de la collection à la révision qui se rapporte à la fourniture Customer? Comment cela serait-il mis en œuvre dans NHibernate? Est-ce compatible avec les meilleures pratiques de NHibernate (et dans une moindre mesure 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; } 
} 

Merci

Répondre

1

Cela peut être fait en utilisant les capacités de filtrage de NHibernate; Voir this article pour une discussion complète.

+0

Merci encore! Je vais prendre une lecture. – UpTheCreek

Questions connexes