Лучше всего делать с представлениями. Если вы не можете делать представления, вы можете создавать свои собственные объекты / классы POCO.
Поскольку POCO-классы не существуют в модели вашего домена, вам нужно сделать пару вещей, чтобы они работали с сервисами ria.
- Поскольку ria - это просто форма WCF с сериализацией сущностей, классы POCO должны быть украшены атрибутом [DataContract].
- Любой член класса POCO должен быть украшен [DataMember]
- Как минимум одно свойство класса POCO должно иметь атрибут [Key] (System.ObjectModel.DataAnnotations) и должно быть уникальным, чтобы соответствовать проверке атрибута Key.
Наконец, чтобы иметь возможность использовать эти классы poco в вашем сервисе, по крайней мере один метод сервиса должен возвращать IEnumerable или IQueriable этого класса poco.
Зная это, вы можете создавать собственные объекты, представляющие иерархию вещей, необходимых для пользовательского интерфейса. Недостатком является то, что делать CRUD с использованием этих объектов немного сложно. Эти объекты чаще используются для отображения.
Более того, я бы посоветовал вам пометить вашу службу ria как частичную и любой код пользовательской службы, который вы пишете, чтобы добавить его в другой частичный класс, который реализует службу .... вы обновляете модель своего домена и регенерируете службу wcf ria ...)