Asp.net MVC не обновляет данные У меня есть связь между двумя таблицами 1: Пользователь M со многими ролями. Когда я изменяю пользователя, он сохраняет данные, но не обновляет роль.
if (role != "Select Role")
{
obj.Roles.Add(_context.Roles.FirstOrDefault(c => c.Name == role));
}
obj.UpdatedBy = System.Configuration.ConfigurationManager.AppSettings["UserDomain"] + Environment.UserName;
obj.UpdatedByDate = DateTime.Today;
_context.Entry(obj).State = obj.Id == 0 ? EntityState.Added : EntityState.Modified;
_context.SaveChanges();
return true;
Позвольте мне изменить код ------ это код двух моделей User и Role
public bool Update(User obj,string role)
{
try
{
if (role != "Select Role")
{
obj.Roles.Add(_context.Roles.FirstOrDefault(c => c.Name == role));
}
obj.UpdatedBy = System.Configuration.ConfigurationManager.AppSettings["UserDomain"] + Environment.UserName;
obj.UpdatedByDate = DateTime.Today;
_context.Entry(obj).State = obj.Id == 0 ? EntityState.Added : EntityState.Modified;
_context.SaveChanges();
return true;
}
catch (Exception e)
{
return false;
}
}





Замените следующую строку:
obj.Roles.Add(_context.Roles.FirstOrDefault(c => c.Name == role));
со следующим:
var Role = _context.Roles.FirstOrDefault(c => c.Name == role);
Role.User = obj;
_context.Entry(Role).State = EntityState.Modified;
Так должно работать.
попробуйте поместить свой код в блок try catch, чтобы увидеть, является ли это ошибкой при выполнении функции SaveChanges