Я пытаюсь сопоставить модель домена в NHibernate. Модель предметной области реализована в стиле, который я считаю DDD. Отображение в основном работает, но затем, когда я пытаюсь использовать фильтр коллекции для коллекции, я получаю исключение, которое говорит: коллекция не имеет ссылок.
Я знаю, что проблема в том, как я реализовал коллекцию. Мой вопрос: возможно ли использовать фильтры коллекций в nHibernate для коллекций, реализованных таким образом, или я должен просто забыть об этом, то есть nHibernate не может работать с этим.
Код выглядит следующим образом:
Person
{
IList<Address> _addresses = new List<Address>();
public string FirstName {get; set;}
...
public void addAddress(Address address)
{
// ... do some checks or validation
_addresses.Add(address);
}
public void removeAddress(Address address) {...}
public ReadOnlyCollection<Address> Addresses
{
get { return new ReadOnlyCollection<Address>(_addresses); }
}
}
Основная проблема в том, что я не хочу публично раскрывать коллекцию внутренних адресов.
Все остальное работает, я использую доступ field.camelcase-underscore, чтобы nHibernate напрямую взаимодействовал с полем. Я работал над книгой Hibernate in Action, и теперь я нахожусь в главе 7, где речь идет о фильтрах коллекций.
Есть ли способ обойти это? Я заставил его работать, выставив внутреннюю коллекцию так:
public ReadOnlyCollection<Address> Addresses
{
get { return _addresses; }
}
но я действительно не хочу этого делать.
Помощь будет очень признательна.
Jide