Martin Fowler parla del modello di dominio in cui il livello della logica di business contiene classi che contengono stato e comportamento. Per quanto mi riguarda, questo significa:
1) Controller calls a class in the Business Layer, which returns a business object e.g. Car. The business object is then casted to a ViewModel.
2) Business Logic Layer calls the repository, which returns a business object e.g. Car
3) Repository calls Data Layer (Entity Framework), which returns a data object e.g. car.
Dove metteresti i metodi che usano più oggetti, ad es. Ordine e ordine? Normalmente utilizzerei una classe di servizio per questo (sono abituato a modelli di dominio anemici) con TransactionScope. Tutta la business logic è contenuta negli oggetti del dominio?