Я хочу написать расширенный класс домена, такой как
public class Product
{
public IEnumerable<Photo> Photos {get; private set;}
public void AddPhoto(){...}
public void RemovePhoto(){...}
}
Но структура сущностей (первый подход кода V4) требует типа ICollection для отложенной загрузки!Приведенный выше код больше не работает так, как задумано, поскольку клиенты могут обойти метод AddPhoto / RemovePhoto и напрямую вызвать метод add в ICollection.Это нехорошо.
public class Product
{
public ICollection<Photo> Photos {get; private set;} //Bad
public void AddPhoto(){...}
public void RemovePhoto(){...}
}
Попытка реализовать DDD с EF4 становится очень неприятной.Почему они выбрали ICollection для ленивой загрузки?
Как я могу преодолеть это?NHibernate предлагает мне лучший опыт DDD?