Это спорный вопрос, и он полностью зависит от как далеко вы хотите создать свое приложение ...
Существуют сильные мнения, которые поддерживают использование DTO / POCO (Plain Old CLR Obects), и действительно, вы можете использовать EF для генерации DTO для достижения такой цели . Это своего рода Rolls-Royce в отношении архитектуры ... Основное преимущество заключается в том, что вы отделяете свою бизнес-логику от доступа к данным, а затем теоретически можете переключиться на новейшую и лучшую ORM в будущее. Недостатком является то, что (как вы сказали в своем вопросе) вам нужен картографический сервис для преобразования между двумя уровнями, а также тот факт, что вы по сути получаете несколько классов для представления одного и того же фрагмента данных.
Как правило, использование DTO / POCO не рекомендуется для малого / среднего из-за добавленного увеличения кода, однако для более крупных проектов разделение проблем может быть выгодным, несмотря на добавленное кодирование томов. Корпоративное приложение или нет, я думаю, вам нужно учитывать реальность того, хотите ли вы когда-нибудь переключить свой инструмент ORM (то есть EF).
Кроме того, я думаю, что сгенерированные EF классы уже достаточно просты и скрывают большую часть кода доступа к данным в «.designer.cs» и даже большую его часть с декларативными атрибутами.
Так что мое личное мнение, хотя, возможно, спорным, является согласование с принятый ответ в связанном сообщение и использовать рамочные сущность объектов, как бизнес-объекты. Я также согласен с тем, что в первую очередь это цель EF (и большинства ORM) ...
Ознакомьтесь с этой серией статей для получения дополнительной информации.