DTO-Muster + Lazy Loading + Entity Framework + ASP.Net MVC + Auto Mapper

Erstens, Entschuldigung Für lange Fragen, aber ich muss einige grundlegende Informationen geben.

Wir erstellen eine Anwendung, die ASP.net MVC, JQuery Templates, Entity Framework, WCF und POCO als Domain-Layer verwendet. In unserer Anwendung gibt es einen WCF Services Layer zum Austauschen von Daten mit der ASP.net MVC-Anwendung und er verwendet DTOs (Data Transfer Objects) von WCF zu MVC.

Darüber hinaus verwendet die Anwendung beim Konvertieren von Domain-TO-DTOs in unserem WCF-Service-Layer Lazy Loading in Entity Framework mithilfe von AutoMapper.

Unsere Backend-Architektur wie folgt (WCF-Dienste -> Manager -> Repository -> Entity Framework (POCO))

In unserer Anwendung verwenden wir keine Ansichtsmodelle, da wir keine weitere Zuordnungsebene für MVC-Anwendungen benötigen und nur DTOs als Ansichtsmodelle verwenden.

Im Allgemeinen haben wir normale und Lite-DTOs für Domänen wie Customer, CustomerLite usw. (Lite-Objekt hat nur wenige Eigenschaften als Normal).

Jetzt haben wir einige Schwierigkeiten mit DTOs, weil unsere DTO-Struktur immer komplexer wird und wenn wir glauben, dass Wartbarkeit (mit der allgemeinen hierarchischen Struktur von DTOs) an Leistung verliert.

Zum Beispiel,

Wir haben die Seite Kundenansicht und unsere DTO-Hierarchie wie folgt

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

In diesem Fall möchten wir einige Felder von OrderLiteDto für diese Ansicht nicht. Aber eine andere Sichtweise benötigt diese Felder. Um dies zu vereinfachen, verwenden wir diese Struktur.

Wenn es um die automatische Zuordnung geht, ordnen wir CustomerViewDetailsDTO zu und erhalten zusätzliche Daten (die für eine bestimmte Ansicht nicht erforderlich sind) von Lazy Loading (Entity Framework).

Meine Fragen:

Gibt es einen Mechanismus, mit dem wir die Leistung verbessern und gleichzeitig die Wartbarkeit berücksichtigen können?

Ist es möglich, Automapper mit mehr auf der Kartenansicht basierenden Zuordnungsfunktionen für dasselbe DTO zu verwenden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage