| 

.NET C# Java Javascript Exception

2
Hallo,
ich nutze das Entity-Framework mit Self Tracking Entities und WCF.

Nachdem über WCF die Update-Methode einer Entity aufgerufen wurde, versuche
ich die geänderten Eigenschaften auszulesen um diese zu protokollieren. Ich möchte wirklich nur die geänderten Eigenschaften haben.

Wenn ich den unten stehenden Code auf eine lokal geänderte Entity anwende, klappt alles prima. Erhalte ich aber eine Entity über WCF vom Client, scheint das Tracking nicht zu funktionieren. Dann sind die CurrentValues immer gleich den OriginalValues.

Irgendetwas scheint beim Serialiseren bei WCF verloren / kaputt zu gehen.

Hat jemand eine Idee??

_model.DetectChanges();
IEnumerable<ObjectStateEntry> l =
_model.ObjectStateManager.GetObjectStateEntries(System.Data.EntityState.Modified);

foreach (var stateEntry in l)
{

CurrentValueRecord c = stateEntry.CurrentValues;
System.Data.Common.DbDataRecord o = stateEntry.OriginalValues;

String vorname_old = c["Vorname"].ToString();
String vorname_new = o["Vorname"].ToString();
//Nachdem Entity von WCF zurück kommt, sind diese Werte immer gleich :-(

}
News:
16.08.2012
Silvia1963 320 2 7
1 Antwort
1
Hast Du die SelfTracking Entities in einer eigenen Dll, die Du im Client und Server referenzierst? Ein "Add Service Reference" reicht für STEs nicht, da WCF dann clientseitig neue Klassen generiert, die kein Tracking unterstützen.
Wenn das der Fall sein sollte, schau mal dieses Walkthrough an, dort wird das Ganze gut erklärt.
16.08.2012
ffordermaier 8,4k 2 9
Prima, das werde ich mir mal anschauen. Danke
Silvia1963 16.08.2012

Stelle deine .net-Frage jetzt!