DDD and MVC Models hold ID of separate entity or the entity itself?
- by Dr. Zim
If you have an Order that references a customer, does the model include the ID of the customer or a copy of the customer object like a value object (thinking DDD)?
I would like to do ths:
public class Order {
public int ID {get;set;}
public Customer customer {get;set;}
...
}
right now I do this:
public class Order {
public int ID {get;set;}
public int customerID {get;set;}
...
}
It would be more convenient to include the complete customer object rather than an ID to the View Model passed to the form. Otherwise, I need to figure out how to get the vendor information to the view that the order references by ID.
This also implies that the repository understand how to deal with the customer object that it finds within the order object when they call save (if we select the first option). If we select the second option, we will need to know where in the view model to put it.
It is certain they will select an existing customer. However, it is also certain they may want to change the information in-place on the display form. One could argue to have the controller extract the customer object, submit customer changes separately to the repository, then submit changes to the order, keeping the customerID in the order.