Technically, using ViewModel means that you are not actually attached to your objects. Your ViewModel classes should have everything you need for the view (and yes, it may cause what seems to be duplication, but it is for the greater good), and therefore you do not even have this problem.
You can ease the pain of duplication by implementing something like AutoMapper to avoid working with left and right coding, where you simply copy properties through.
If you are linking a list, think that it has an EmployeeListViewModel that has a property of type IList<EmployeeViewModel> , so that you still do not bind your entities directly to the view. This is useful because you can reuse this EmployeeViewModel for a detailed view with a single record.
source share