Когда вы создаете классы в EF, они имеют атрибуты [DataMember]
в своих полях, и это единственные данные, которые передаются по сети. Так что это не так тяжело, как кажется ...
Но, поскольку вы проходите через WCF, сущности должны быть сгенерированы для самопроверки, поэтому, когда они возвращаются в службу, вы знаете, что изменилось, и вам не нужно повторно извлекать каждую сущность из базы данных. сравнение.
Если вы все еще хотите DTO, вы можете также сгенерировать их. Если вы используете EF4.0, у вас есть возможность извлечь файл T4 (.tt), который практически выполняет генерацию кода - используйте его и измените в соответствии с вашими потребностями и сгенерируйте DTO, а также классы сопоставления ...
Чтобы получить файл .tt из edmx (только для EF4): щелкните правой кнопкой мыши свою модель, выберите «Добавить элементы генерации кода» и выберите «Генератор EntityObject», или другой, если вы хотите, чтобы объекты передавались через wcf. Это создаст файл tt, который вы сможете запустить, выполнив команду сохранения (вы получите приглашение, если хотите разрешить его запуск). При сохранении он сгенерирует файл, который точно совпадает с файлом, сгенерированным моделью edmx в случае генератора EntityObject, или у вас будет два файла .tt, если вы используете другой генератор ...