Вопрос / коллекции предметного моделирования с помощью NHibernate - PullRequest
2 голосов
/ 04 августа 2010

Пожалуйста, обратите внимание на модель предметной области, показанную ниже (упрощенно для краткости - без идентификаторов и т. Д.). Customer может комментировать Product только один раз. Предположим (по причинам, по которым я не хочу здесь вдаваться), что класс Customer не может иметь коллекцию Review s, которой он владеет. Здесь Product является основным Совокупным корнем.

Часто в этой ситуации при извлечении Product это будет только в контексте определенного Customer. Другими словами, меня будут интересовать только члены коллекции Reviews, принадлежащие этому конкретному Customer.

Итак, есть ли способ при извлечении объекта Product ограничить совокупность коллекции обзором, который относится к Customer I? Как это будет реализовано в 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 Ответ

1 голос
/ 05 августа 2010

Это можно сделать, используя возможности фильтрации NHibernate;см. эту статью для полного обсуждения.

...