Wie zum Hinzufügen / Entfernen many-to-many-Beziehung mit Entity Framework von Entitätsschlüssel?
-
21-08-2019 - |
Frage
Ich habe versucht:
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, Remove () zu verwenden, ohne befestigen Aufruf vor keine Ausnahme ausgelöst wird, aber Beziehung nicht gelöscht.
Lösung
Versuchen Sie 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.
Sehen Sie diese Blog-Post für weitere Informationen auf Stub Entity-Techniken.
Hope, das hilft
Alex
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow