Getrenntes Verhalten von Entity Framework beim Aktualisieren des Objektdiagramms

Ich arbeite derzeit an einem Projekt, das folgende Technologien verwendet.

ASP.net MVC - PräsentationsebeneDatendienstschicht - (WCF)DTO-Layer (Data Transfer Objects) mit Auto MapperDomänenschicht (POCO, Code First Entity Framework)Repository-Ebene + Entity Framework 4.3 + DbContext.

Wir verwenden DTOs, um Domain-Objekte mithilfe der automatischen Zuordnung umzuwandeln und über den WCF-Dienst an das Front-End zu senden.

Außerdem erstellen wir für jede Anforderung einen auf Anforderungen basierenden DBContext in der WCF-Ebene, und unser WCF-Dienstkontext wird durch die Aktivierung von Per Call und No Tracking in clientseitigen DTOs erstellt und ist vollständig getrennt.

Wir haben auch folgenden Objektgraphen.

public class User : BaseEntity
    {
        public virtual Identity Identity { get; set; }

        public string UserName { get; set; }

        public string Password { get; set; }

        public int IdentityId { get; set; }

        public virtual IList<Group> Groups{ get; set; }
    }



 public class Identity : BaseEntity
    {
        public string FirstName { get; set; }

        public string LastName { get; set; }

        public virtual IList<Email> Emails { get; set; }

        public virtual IList<PhoneNumber> PhoneNumbers { get; set; }
    }

Unsere Dto-Struktur ist im Vergleich zu Domain eher dieselbe.

Meine Fragen:

Wenn es darum geht, Objektgraphen zu aktualisieren Zum Beispiel:UpdateUser (User user); Was ist der beste Ansatz für Entity Framework?

Jetzt verwenden wir einzelne Funktionen, um Navigationsdaten zu speichern, zB:UpdateEmail (Benutzer-ID, E-Mail)(Speichert nur primitive Daten, keine Beziehungen); Daher werden viele Einfügungen und Aktualisierungen in der Datenbank vorgenommen, wenn wir die eine UnitOfWork betrachten.

Aktuelle Implementierung wie folgt

  public void UpdateUser(User user)
    {
    UpdateEmail(user.userId, user.Idenity.Emails);
    UpdatePhone(user.userId, user.Identity.PhoneNumbers);

    etc.............

    UpdateUser(user);
    UnitOfWork.Commit();// Calling DbContext.SaveChanges();
    }

Gibt es ein Muster oder eine bewährte Methode, die wir mit Entity Framework in der obigen Situation mit nicht verbundenem Objektdiagramm verwenden können?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage