У меня есть рабочее отношение один ко многим (НЕ двунаправленное), где у Ресурса есть множество множества Выделений, как показано ниже. Домен должен делать больше с коллекцией выделений, которая просто управляет им с помощью AddAllocation, RemoveAllocation и т. Д. Итак, с точки зрения объекта, я бы хотел поместить эту дополнительную логику, которая не является постоянной, связанной с другим классом, AllocationCollection, и сделайте этот дополнительный класс прозрачным для NHib.
Я также хотел бы конкретизировать обязанности AllocationCollection в стиле TDD, но я не уверен, как реорганизовать существующий класс, чтобы NHib все еще работал, составляя карту. Как бы вы это сделали?
Ура,
Berryl
МОДЕЛЬ
public class Resource {
public virtual ICollection<Allocation> Allocations
{
get { return _allocations ?? (_allocations = new HashSet<Allocation>()); }
private set { _allocations = value; } // Nhib will use this
}
}
КАРТЫ
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" ...
<class xmlns="urn:nhibernate-mapping-2.2" name="Domain.Model.Resources.Resource, ... table="Resources">
....
<set cascade="all-delete-orphan" name="Allocations">
<key foreign-key="Allocations_Resource_FK">
<column name="ResourceId" />
</key>
<one-to-many class="Model.Allocations.Allocation, ... />
</set>