Я нашел метод здесь , который позволяет создавать классы CLR на стороне службы, а затем можно использовать сгенерированные объекты из ссылки на службу, поскольку классы создаются с помощью INotifyPropertyChanged и ObservableCollection.
Это решает непосредственную проблему границы клиент / сервер, но вписывается в мое решение, потому что для использования сгенерированных объектов вам нужна ссылка на сервис. Но у меня есть ProxyClass, который взаимодействует с WCF, поэтому я не вижу способа передачи этих типов объектов обратно в ViewModel.
Я вижу, что некоторые люди написали классы мапперов, но это далеко от идеала, поскольку мне пришлось бы писать 3 класса для каждого объекта POCO (клиентский класс, серверный класс DTO, маппер).
Есть еще предложения?