DTO Pattern + Ленивая загрузка + Entity Framework + ASP.Net MVC + Auto Mapper

Во-первых, извините за длинный вопрос, но я должен дать некоторую основную информацию.

Мы создаем приложение, которое использует ASP.net MVC, JQuery Templates, Entity Framework, WCF, и мы использовали POCO в качестве нашего уровня домена. В нашем приложении есть сервисный уровень WCF для обмена данными с приложением ASP.net MVC, и он использует объекты передачи данных (DTO) из WCF в MVC.

Кроме того, приложение использует отложенную загрузку в Entity Framework с использованием AutoMapper при преобразовании Domain-TO-DTO в нашем сервисном уровне WCF.

Наша архитектура бэкэнда выглядит следующим образом WCF Services -> Managers -> Repository -> Entity Framework (POCO))

В нашем приложении мы не используем модели представления, поскольку нам не нужен еще один слой отображения для приложения MVC, и мы используем только DTO в качестве моделей представления.

В общем, у нас есть обычные и облегченные DTO для таких доменов, как Customer, CustomerLite и т. Д. объекта @Lite меньше свойств, чем у Normal).

Теперь у нас возникают некоторые трудности с DTO, потому что наша структура DTO становится все более сложной, и когда мы думаем о возможности сопровождения (с общей иерархической структурой DTO), мы теряем производительность.

Например

У нас есть страница просмотра клиентов и наша иерархия DTO следующим образом:

 public class CustomerViewDetailsDTO
 {
   public CustomerLiteDto Customer{get;set;}
   public OrderLiteDto Order{get;set;}
   public AddressLiteDto Address{get;set;}
 }

В этом случае нам не нужны некоторые поля OrderLiteDto для этого представления. Но некоторые другие представления нуждаются в этих полях, поэтому для облегчения этого мы используем эту структуру.

Когда дело доходит до автоматического сопоставления, мы сопоставляем CustomerViewDetailsDTO, и мы получим дополнительные данные (которые не требуются для конкретного представления) из Lazy Loading (Entity Framework).

Мои вопросы

Есть ли какой-нибудь механизм, который мы можем использовать для повышения производительности при рассмотрении ремонтопригодности?

Можно ли использовать Automapper с большим количеством функций отображения на основе вида карты для того же DTO?

Ответы на вопрос(1)

Ваш ответ на вопрос