Zobacz sobie źródło jakiegoś większego projektu OpenSource'owego, np. NopCommerce.
Model w MVC to szerokie pojęcie, tzn może to być klasa biznesowa (która często jest encją ORM'owską, ale wcale nie musi nią być).
Generalnie jednak, często stosuje się zasadę, że klasy biznesowe/encje nie są bezpośrednio wystawiane do warstwy odpowiedzialnej za prezentację.
A tworzone są obiekty-kontenery (ViewModels) na dane które są już gotowe do tego, aby przedstawić je w widoku.
Np. Jeżeli masz obiekt domeny
public class Order {
[... tutaj dużo jakiś właściwości]
public List<OrderLine> OrderPositions {get;set;}
public OrderDetails OrderDetails {get;set;}
}
to jeżeli chcemy do widoku przesłać tylko jakiś podzbiór tego obiektu, wykonujemy mapowanie na pobranym obiekcie domeny (ręcznie, lub automatycznie np z użyciem AutoMappera) w kontrolerze.
Wtedy przykładowy ViewModel jest następujący:
public class OrderViewModel {
[.. mniejsza ilosc wlasciwosci ..] { get;set; }
public string OrderDetailsJakisDetal1 {get;set;}
public string OrderDetailsJakisDetal2 {get;set;}
}