更新记录EF不起作用

时间:2014-05-19 20:52:36

标签: entity-framework entity-framework-6

为什么数据库中没有更新,但注释掉的版本确实有效?

public bool InsertOrUpdateItems(Items item)
        {
            using (var dbContext = new MyEntities())
            {
                var items = dbContext.Items.Find(item.ItemId);
                if (items != null)
                {
                    dbContext.Items.Attach(items);
                    dbContext.Entry(items).State = EntityState.Modified;
                    //dbContext.Entry(items).CurrentValues.SetValues(item);
                    dbContext.SaveChanges();
                }

没有抛出异常,它只是不会更新。即使找到了记录。

1 个答案:

答案 0 :(得分:0)

如果相关行被注释掉,则没有要更新的新值。请注意:

  1. 从DB
  2. 获取名为items的对象
  3. 您附加它(虽然它默认附加)
  4. 您尝试保存相同的items
  5. 您作为InsertOrUpdateItems方法(item)的参数传递的对象甚至未在您的代码中触及,除非读取其ID以用于Find()