locked
Exception beim setzen eines EntityRelationship RRS feed

  • Frage

  • Hallo,
    ich kriege einen Fehler beim simplen setzten vom letzten Bearbeiter.
    Ich setze zum ersten Mal Entity Framework mit WCF (in einem Projekt) ein.
    Beim hinzufügen oder beim lokalen Testen ohne WCF ist alles kein Problem.

    Fehlermeldung:
    Ein Objekt mit demselben Schlüssel ist bereits im ObjectStateManager vorhanden. Der ObjectStateManager kann nicht mehrere Objekte mit demselben Schlüssel nachverfolgen.

    Code:
     User user = ctx.users.Where("it.username=@username",
                new ObjectParameter("username", Username)).First<user>();
                if (User.id != customer.LastEditor.id) customer.LastEditor = User;
    Das Ganze läuft Serverseitig ab.
    Der User wird folgendermaßen bestimmt:

     IIdentity wic = OperationContext.Current.ServiceSecurityContext.PrimaryIdentity as IIdentity;
             
                string UserName="";
    
             if (wic != null)
                 UserName = wic.Name.ToString();
                 
             return UserName;
    Die Fehlermeldung ist mir völlig schleierhaft, da ich ja nicht eine neue Entity erstelle oder Attach(e) sondern nur eine Relation setze.
    hm.
    Vielen Dank für Eure hilfe.
    Gruss
    Montag, 7. September 2009 21:56

Antworten

  • Hab zwar nicht verstanden warum das so ist, aber hier ist die Lösung:

    //Update
    customer.LastEditorReference.EntityKey = User.EntityKey;


    beim
    //add
    customer.LastEditor = user;
    

    funktionierts einwandfrei.
    • Als Antwort markiert Lucien81 Mittwoch, 9. September 2009 07:55
    Mittwoch, 9. September 2009 07:55