Это всегда сложная проблема и, скорее всего, свидетельствует о том, что ваш дизайн не совсем соответствует вашему домену.У меня есть немного, чтобы сказать об этом в моем блоге (если вам интересно):
http://www.ebenroux.co.za/post/2010/08/20/Natrual-Aggregates-vs-Synthetic-Aggregates.aspx
У вас есть Team
, и у вас есть Player
.Это было бы 2 Совокупных Корня.Создание команды в качестве совокупного корня и игрока как отдельной сущности - вот что, вероятно, причиняет вам боль.В реальной жизни игроку не обязательно принадлежать к команде, и это также зависит от того, какая у вас «команда».Это просто общее имя, или текущие члены, или настоящие люди, которые могут выйти на поле в определенный день?
Так что вы, вероятно, в конечном итоге будете иметь разные «команды»:
Таким образом, игроки не обязательно часть совокупности, а скорее совокупность может иметькакое-то владение, возможно, с довольно слабой ссылкой на игрока (например, только идентификатор или какой-либо объект стоимости).Что-то на этот счет.
Но вернемся к тому, на что Эрик ссылается в своей книге: я думаю, что это относится к чему-то вроде этого (используя вашу форму):
var line = Order.AddLine (SomeProduct);
Здесь не должно быть слишком большого смысла иметь ссылку на фактическую сущность в совокупности, поскольку у нее нет собственного жизненного цикла.Что ж, в этом случае строка заказа даже не является сущностью.
Также было некоторое обсуждение того, возвращает ли хранилище только AR или сущности (которые в некоторых хранилищах являются AR).Согласно тому, что I нашел синюю книгу, вы можете извлечь сущность из хранилища.
В любом случае.Просто некоторые мысли.HTH:)