how should i add an object into a collection maintained by aggregate root
domain-driven-design
Solution
If you believe in DDD, it's perfectly fine to know about some entity beneath the aggregate root, as long as you do not store an ID or a reference to it somewhere outside of the aggregate.
I would go for the `blogPost.AddComment(new Comment(...))`-version.
Problem
lets say i have a BlogPost aggregate root. it holds a List`<Comment>`. how should the BlogPost AddComment signature look? is it OK to use: ``` public void AddComment(Comment comment) { Comments.Add(comment); } ``` or should i avoid creating references to root's children outside of it, and do something like this: ``` public void AddComment(string text, string email) { Comment comment = new Comment(text, email); Comments.Add(comment); } ```