в первую очередь вот это сообщение
Изменения в базе данных были
совершено успешно, но ошибка
произошло при обновлении объекта
контекст. ObjectContext может быть в
противоречивое состояние. Внутреннее исключение
сообщение: ссылочная целостность
нарушение ограничения произошло:
значения свойств, которые определяют
ссылочные ограничения не
соответствует между основной и
зависимые объекты в отношениях.
проблема возникает, когда я пытаюсь вставить новые данные в рамку объекта
Моя модель сущности
![enter image description here](https://i.stack.imgur.com/wdwFS.png)
в базе данных я установил отношение к каскаду при удалении и обновлении. это единственное изменение, которое я сделал в отношении
Метод моего действия:
[HttpPost]
public ActionResult CompleteRegisteration(RegisterViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = new User
{
DisplayName = model.DisplayName,
FullName = model.Name,
Email = model.Email,
};
user.AuthenticationTokens.Add(new AuthenticationToken
{
ClaimedIdentifier = model.ClaimedIdentifier,
DisplayName = model.Email
});
_userRepository.InsertOrUpdate(user);
_userRepository.Save();
return RedirectToAction("Index", "Home");
}
и методы пользовательского репозитория:
private readonly StoryWritingEntities context = new StoryWritingEntities();
public void InsertOrUpdate(User user)
{
context.Users.Attach(user);
context.ObjectStateManager.ChangeObjectState(user,
user.Id == default(int)
? EntityState.Added // if true then this is a new entry
: EntityState.Modified); // if false this is an Existing entry
}
public void Save()
{
context.SaveChanges();
}
проблема вызвана context.SaveChanges()
в таблицу пользователей вставлена запись, но в таблицу AuthenticationTokens ничего не вставлено