title: C# business objects and collections
body: <p>I'm having difficulty wrapping my head around business objects or more specifically, business object collections.</p>
  
  <p>Here's a quick example of what I'm trying to do.</p>
  
  <p>If I have an Incident Object, this object can have a number of people involved and each of those Person objects can have multiple notes. Notes can't exist without a Person object and Person objects can't exist without an Incident Object.</p>
  
  <p>If I have Public List&lt;Note> notes = new List&lt;Note>() then methods such as ADD and REMOVE become available to Person within Incident. I assume that if I was to call those methods on the Notes collection it will simply remove it from the List but not execute any code to actually add/update/delete the employee from the data source. This leads me to believe that I shouldn't use List but something else?</p>
  
  <p>This also leads me to another question. Where should the actual database <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete" rel="nofollow noreferrer">CRUD</a> operations reside. Should a Note object have its own CRUD or should the Person object be responsible for it since it can't exist without it?</p>
  
  <p>I'm a little lost about which way to go and I'd like to get this part right because it will be the template for the rest of the program.</p>