DbContext行不会更新

时间:2014-05-14 20:45:31

标签: c# entity-framework dbcontext

我有以下功能需要更新我的数据库中的实体上的字段,但它无法正常工作。之前检索了FundEvents列表,并且已经存在于表中。

public void MarkFundEventRowsAsProcessed(List<FundEvent> events)
{
    var context = new MRDTestEntities();

    foreach (var evtRow in events)
    {
        evtRow.IsProcessed = 1;
        context.FundEvents.Attach(evtRow);
        context.Entry(evtRow).State = System.Data.EntityState.Modified;
    }

    context.SaveChanges();
}

我还尝试从此方法中创建的上下文中检索行并更新它,但它仍然不起作用。也尝试没有循环,只更新一行。没有任何作用,数据库中的行不会更新。

我做错了什么?

顺便说一句,这是使用SQL Compact版本,如果这有任何区别。

修改

不会抛出异常。以下也不起作用:

public void MarkFundEventRowsAsProcessed(List<FundEvent> events)
{
    var context = new MRDTestEntities();

    var row = context.FundEvents.Where(e => e.RowId == 1).Single(); //I know this row exists
    context.FundEvents.Attach(row);
    row.IsProcessed = 1; //tried with changing the row either before or after attaching
    context.Entry(row).State = System.Data.EntityState.Modified;
    context.SaveChanges();
}

0 个答案:

没有答案