Почему платформе сущностей нужна ICollection для отложенной загрузки?

Я хочу написать богатый класс домена, такой как

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?

Ответы на вопрос(0)

Ваш ответ на вопрос