2017-03-12 4 views
0

Ich habe zwei Tabellen: Tasks und Users (ApplicationUser), gibt es eine viele zwischen ihnen zu viele Beziehung, Ich bin die vordefinierten Tabelle Benutzer von Microsoft Identity verwenden, Wenn ich eine bestehende Task aktualisieren und neue Benutzer zuweisen es:Validierung für eine oder mehrere Entitäten fehlgeschlagen. Benutzername ist bereits vergeben?

var taskToUpdate = context.Tasks.Find(taskVM.Id); 
     context.Entry(taskToUpdate).State = EntityState.Modified; 
     taskToUpdate.Users = new List<ApplicationUser>(); 
     foreach (var user in taskVM._Users) 
     { 
      var userDB = context.Users.Find(user.Id); 
      context.Entry(userDB).State = EntityState.Unchanged; 
      taskToUpdate.Users.Add(user); 
     } 
     context.SaveChanges(); 

Aber wenn SaveChanges heißt ich diesen Fehler bekam:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

in EntityValidationErrors:

ErrorMessage = "Benutzername Sohaib ist bereits vergeben." Property Benutzer

Antwort

0

wenn die .Users.Add Methode EF Aufruf vorausgesetzt, dass Sie neue Einheiten werden somit die Aufnahme der neuen User-Datensatz erstellt und die Ausnahme

mögliche Lösung zu werfen ist

var taskToUpdate = context.Tasks.Find(taskVM.Id); 
taskToUpdate.Users = taskVM.Users; 
context.SaveChanges(); 
Verwandte Themen