我有以下功能需要更新我的数据库中的实体上的字段,但它无法正常工作。之前检索了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();
}