2

Ich habe versucht:Hinzufügen/Entfernen von Viele-zu-viele-Beziehung mit Entity-Framework nach Entitätsschlüssel?

using (Entities e = new Entities()) 
{ 
    EntityKey key = new EntityKey("Entities.Users", "UserId", 20); 
    User user = new User { EntityKey = key}; 
    Role role = e.Roles.FirstOrDefault(); 
    //role.Users.Attach(user); //throws (when uncommented...) InvalidOperationException: 
    //The object being attached to the source object is not attached to the same ObjectContext as the source object. 
    role.Users.Add(user); //throws InvalidOperationException too: 
    //The object cannot be added to the ObjectStateManager because it already has an EntityKey. Use ObjectContext.Attach to attach an object that has an existing key. 
    e.SaveChanges(); 
} 

Beim Versuch() zu verwenden, entfernen ohne Aufruf an, bevor keine Ausnahme ausgelöst wird, aber Beziehung nicht gelöscht.

+0

Ist "Entities" in Ihrem Beispiel vom Typ System.Data.Entity.DbContext? – jaybro

+0

Nachforschung: Wenn "AttachTo" verwendet wird, muss "Entities" ein ObjectContext sein. – jaybro

+0

LOL wahrscheinlich, das ist ein alter Post ... Tag hinzugefügt – Shimmy

Antwort

3

versuchen, etwas wie folgt aus:

User user = new User {UserId = 20}; 
e.AttachTo("Users", user); 
Role role = e.Roles.FirstOrDefault(); 
role.Users.Add(user); 
e.SaveChanges(); 

Ich finde es viel einfacher, mit Stub Entitäten zu arbeiten (wie die oben Benutzer) statt EntityKeys.

Weitere Informationen zu Stub Entity-Techniken finden Sie unter blog post.

this helps

Alex

Verwandte Themen