【问题标题】:Entity Framework not updating changes 6实体框架不更新更改 6
【发布时间】:2018-10-29 15:34:51
【问题描述】:

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;

让我修改代码------这是代码两个模型用户和角色

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

【问题讨论】:

  • 尝试将您的代码放入 try catch 块中,以查看它们在执行 SaveChanges 函数时是否出错

标签: c# asp.net-mvc entity-framework entity-framework-6


【解决方案1】:

替换以下行:

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;

这样它应该可以工作。

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 2017-08-07
    • 2015-12-20
    • 1970-01-01
    相关资源
    最近更新 更多