ддда, коллекция объекта значения
class Feed : Entity {
public Guid Id {get;set;}
public string FeedText {get;set;}
public ISet<FeedUser> FeedUsers {get;set;}
public void AddFeedUser(User user) {
FeedUsers.Add(user.Id);
}
public void RemoveFeedUser(User user) {
FeedUsers.Remove(user.Id);
}
public void MarkUserAsReadFeed(User user)
{
var feedUser = FeedUsers.Find(u=>u.Id == user.Id);
feedUser.Read();
}
}
class FeedUser : ValueObject {
public Guid UserId {get;private set;}
public bool IsRead {get;private set;}
public DateTime? ReadDate=null {get;private set;}
public void Read(){
IsRead = true;
}
public void UnRead(){
IsRead = false;
}
}
В этом случае FeedUser является значение объекта или юридическое лицо? Я путаюсь, потому что FeedUser не нуждается в идентификации, но не на 100% неизменен (свойство IsRead изменено)
У Feed есть много FeedUser. В NHibernate следует загрузить все свойства FeedUsers (Lazy Load или Eager loading) для добавления нового FeedUser или удаления из списка?
при удалении FeedUser и добавлении нового FeedUser (Feed not add it create new one) Ответы являются FeedUserRepository, break ddd? и Как я могу получить доступ к FeedUsers из фида? – oguzh4n
@ oguzh4n DDD не означает большие агрегаты, инкапсулирующие все. Агрегат основан на защите от атак. Кажется, что вы упрощаете пример, я не понимаю, зачем Fee нужен доступ к FeedUsers. Вы хотели бы подробнее рассказать об инвариантах? – Hippoom