Entity Framework не обновляет изменения 6 - PullRequest
0 голосов
/ 29 октября 2018

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;
    }
}

1 Ответ

0 голосов
/ 29 октября 2018

Заменить следующую строку:

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;

Так должно работать.

...