Hi Erick
Whether you use Entity Framework, NH or datasets, it should not impact the ViewModel. ViewModels should be completely agnostic from the mechanism for data retrieval, this is part of separating out concerns and responsibilities:
1. I would definitely not use the entities as the ViewModel. View Models are supposed to be purely for presentation. They may expose the underlying model as properties on the ViewModel, but that is a completely different story.
2. In terms of querying, I would also not recommend binding the VM in any way to your data retrieval in that it more tightly couples the implementation, and also greatly impacts testability. Instead you should inject a service / controller into the VM on construction that it can use for data retrieval. The implementation of that service should call to EF under the hood. I would also not let EF semantics bleed into the interface of the service, instead it should have fine-grained, specific accessors for the data such as GetCustomer, GetOrderItems….etc.
If you look in the patterns & practices Composite WPF guidance (www.microsoft.com/CompositeWPF), you will see some good examples of implementing MVVM in the manner I described. They are not using EF, but the approach of getting entity data through services is in the Stock Trader Reference Implementation.
Happy to chat with you more on this.
Glenn