1

我正在使用以下代码更新数据库中的某些记录:

        IList<Item> list;
        using (DbContext context = new DbContext()
        {
            list = Item.ToList();
            foreach (Item item in list)
            {
                // attach the item
                context.Item.Attach(item);

                item.Updated = DateTime.Now; 
                context.Items.Add(item);
                context.SaveChanges();
             }
        }

问题是 EF 正在插入一个新项目而不是更新更新的项目......我在网站上搜索了 abit 并看到了将项目附加到 DbContext 的建议,但这也不起作用?我究竟做错了什么?

4

1 回答 1

7

程序应该是:

using (DbContext context = new DbContext()
{
    foreach (Item item in list)
    {
        item.Updated = DateTime.Now; 
        context.Entry(item).State = EntityState.Modified;//attaches automatically
    }
    context.SaveChanges();
}

您正在调用Add这意味着 INSERT。

于 2012-04-06T10:38:58.290 回答