Wie aktualisiert man nur modifizierte Werte (EntityFramework 5.0)?

8

Ich habe diese Entität, die mit entityframework

aktualisiert werden soll %Vor%

Code zum Aktualisieren

%Vor%

Dies ist die SQL-Anweisung, die einmal aktualisiert wurde

%Vor%

Aber ich erwarte das

%Vor%

Ich weiß nicht, was ich hier vermisse. Lass es mich wissen, bitte.

    
sivaL 31.01.2013, 14:21
quelle

2 Antworten

6

Das ist die Lösung, die ich bekommen habe

%Vor%

Nur geänderte Werte in der sql update-Anweisung

%Vor%

Wenn jemand eine bessere Antwort als diese weiß, bitte posten Sie Ihre Vorschläge

    
sivaL 01.02.2013, 13:46
quelle
8

Dieses Problem tritt häufig beim Umgang mit DTOs auf. Eine Mitarbeitereinheit wird aus der Datenbank abgerufen, einem DTO zugeordnet und über die Leitung gesendet. Der Client ändert dann dieses DTO und sendet es zurück an den Server.

Wenn Sie eine Eigenschaft in einer EF-Entität berühren (setzen), geht EF davon aus, dass der Wert geändert wurde. Auch wenn der alte Wert und der neue Wert genau gleich sind. Dasselbe Problem tritt auf, wenn Sie das DTO einer neuen Entität zuordnen und es an EF anhängen und dessen Status auf "Modifiziert" aktualisieren.

AutoMapper verwenden:

%Vor%

Oder manuell (ich würde das vermeiden, aber nur der Vollständigkeit halber):

%Vor%

Es gibt wahrscheinlich noch andere Möglichkeiten, mit diesem Problem umzugehen ... aber AutoMapper zusammen mit Entity Framework korrekt zu verwenden, ist definitiv einer der einfachsten Wege.

    
deherch 16.04.2014 10:38
quelle