Initial Warning: Long post and I might have got the pattern totally wrong anyway:
Given the following class which is the start of the Customer Aggregate:
public class Customer : KeyedObject
{
   public Customer(int customerId)
   {
      _customerRepository.Load(this);
   }
   private ICustomerRepository _customerRepository = IoC.Res...
            
           
          
            
            I have a domain data model which returns a class such as the following:
public class ZombieDeath
{
    public virtual int ZombieId {get;set;}
    public virtual FatalHit {get;set;}
}
public class FatalHit
{
    public virtual int HitId {get;set;}
    public virtual string Zone {get;set;}
    public virtual string Weapon {get;set;}    
...
            
           
          
            
            I'm trying to avoid ending up with an anaemic Domain Model, so I'm attempting to keep as much logic as possible within the domain model itself. I have a method called AddIngredient, which needs to add a new KeyedObject to my Recipe Aggregate.
As the Domain Models themselves are meant to be devoid of repositories, I'm getting the ingredi...