So erhalten Sie die ursprüngliche Entität von ChangeTracker

9

Gibt es eine Möglichkeit, die ursprüngliche Entität selbst von ChangeTracker zu erhalten (und nicht nur die ursprünglichen Werte)?

Wenn State Modified ist, dann könnte ich Folgendes tun:

%Vor%

Aber das scheint nicht sehr nett zu sein, und ich bin mir sicher, dass es Probleme damit gibt, von denen ich nichts weiß ... Gibt es einen besseren Weg?

Ich benutze Entity Framework 6.

    
Eric 21.02.2013, 21:31
quelle

4 Antworten

18

Überschreibe SaveChanges von DbContext oder rufe einfach ChangeTracker aus dem Kontext auf:

%Vor%

Hier ist eine Methode, die eine neue Entität mit den ursprünglichen Werten erstellt. Damit alle Entitäten einen parameterlosen öffentlichen Konstruktor haben, können Sie einfach eine Instanz mit new :

konstruieren %Vor%     
Sergey Berezovskiy 21.02.2013, 21:34
quelle
5

Nett. Hier ist eine leicht modifizierte Version, die komplexe Eigenschaften handhaben wird:

%Vor%     
Clement 14.08.2013 11:32
quelle
1

Ich würde Klon-Entities bei der Materialisierung vorschlagen und sie an den zweiten Kontext anhängen, um das gesamte Original-Objekt-Diagramm zu behalten (wenn Sie es natürlich brauchen). Sie können sie alle durch Ändern der T4-Vorlage ICloneable machen.

    
Oleg 22.02.2013 11:52
quelle
-1

Bei der Arbeit mit EF 6 habe ich den folgenden Code verwendet, um den zugrunde liegenden POCO-Entitätstyp vom Proxy-Typ abzurufen,

%Vor%

ObjectContext.GetObjectType : Gibt das POCO vom Proxy-Objekt zurück

    
Ajay Bhingare 30.04.2015 15:08
quelle