Entity Framework mit WCF - Probleme beim speichern

16/04/2009 - 13:51 von Roland Schumacher | Report spam
Hallo

Ich stelle via WCF diverse Methoden zur Verfügung die dann auf dem Server
die Objekte mit dem EF laden, speichern und löschen.

Auf dem Server habe ich folgende Methode.
[...]
public Kunde Add(Kunde item)
{
try
{
m_context.AddToKundeCol(item);

//Generiertes SQL ausgeben.
Trace.WriteLine(m_context.ToTraceString());

m_context.SaveChanges();
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}

return GetById(item.KundeID);
}
[...]

Die wird via WCF auf dem Client wie folgt konsumiert.

[...]
private void Test()
{
using (ServiceClient proxy = new ServiceClient())
{
Kontakt kontakt = proxy.NewKontakt("Roland", "Meiersmattstrasse 60A",
6043, "Adligenswil");
kontakt = proxy.AddKontakt(kontakt);

Kunde kunde = proxy.NewKunde(true, "RAIF22CH 9966 3366", "Keine Ahnung
was das soll");
kunde.Kontakt = kontakt;
kunde = proxy.AddKunde(kunde);
}
}
[...]

Der Kontakt ist auf dem Server anlog dem Kunde realisiert. Der speichert
sich auch einwandfrei.
Der Kunde will sich aber nicht speichern lassen.

Fehler:
[...]
Das Objekt kann nicht zum ObjectStateManager hinzugefügt werden, da es
bereits einen EntityKey aufweist. Verwenden Sie ObjectContext.Attach zum
Anfügen von Objekten mit vorhandenem Schlüssel.
[...]

Aber das Objekt Kunde hat NOCH KEINEN EntityKey, jedenfalls gemàss dem
Debugger.

Mach ich prinzipiell was falsch?

Gruss
Roland Schumacher alias GENiALi
http://blog.geniali.ch/
http://jotd.geniali.ch/
 

Lesen sie die antworten

#1 Roland Schumacher
16/04/2009 - 14:28 | Warnen spam
Noch ein Hinweis.

Wenn die die Beziehung Kunde(*) Kontakt(1) so anpasse, dass Kunde(*) und
Kontakt(0..1) ist, dann klappt das Speichern.

Ich könnte jetzt überall auf der DB alles anpassen das es nicht mehr
Pflichtfleder sind. Aber, dass ist nicht wirklich sauber nehme ich an.


Gruss
Roland Schumacher
http://blog.geniali.ch/
http://jotd.geniali.ch/

Ähnliche fragen