2015-10-01 3 views
0

Я создал панель администратора, где администратор может редактировать и обновлять список учеников. Данные правильно отредактированы, но при сохранении я получаю ошибку.Не удалось сохранить отредактированный объект

Ошибка:

A referential integrity constraint violation occurred: The property value(s) of 'ApplicationUser.Id' on one end of a relationship do not match the property value(s) of 'student.ApplicationUserID' on the other end

Я думаю, что проблема в том, что я применяю user.id к ApplicationUserID, но я не знаю, как решить ее.

Мой класс студент выглядит следующим образом:

public class student 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public string SecondName { get; set; } 
    public string ClassName { get; set; } 
    public virtual ApplicationUser Users { get; set; } 
    public string ApplicationUserID { get; set; }  
} 

Сохранить метод ActionResult является:

public ActionResult Edit(student st) 
{ 
    ApplicationDbContext db = new ApplicationDbContext(); 

    //UpdateModel<istudent>(st); 
    if (ModelState.IsValid) 
    { 
     db.Entry(st).State = EntityState.Modified; 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    return View("Index"); 
} 
+0

Возможно, этот ответ может помочь вам: http://stackoverflow.com/a/11596430/858757 – Silvermind

ответ

0

Вы обновляете значение внешнего ключа ApplicationUserId без обновления исходного значения ApplicationUser.Id.

Ссылочная целостность, по-видимому, указывает на нарушение ограничений внешних ключей.

+0

да ... но как его решить.? –

+0

Мне нужно прочитать это. Но длинный путь - это загрузка основного объекта и его обновление. Я не думаю, что вы должны обновлять внешний ключ самостоятельно. Это всегда будет давать ошибку. На самом деле, вероятно, не разрешить редактирование, иначе вы всегда получите эту ошибку. Он должен опираться на объект Primary. (Реляционная логика БД) –

+0

Я не знаю точно. Но если вы ссылаетесь на объект в EF, если первичный объект обновляется, он должен обновлять ссылки на него. –

 Смежные вопросы

  • Нет связанных вопросов^_^