我是 Entity Framework 的新手。我正在尝试更新记录并将更改保存到数据库。
public void SaveEdit(Gate gate)
{
try
{
using (dc = new GateEntities())
{
var query = (from tbsite in dc.tblSites
where tbsite.ID == gate.ID
select tbsite).FirstOrDefault();
query.CalledInAt = gate.CalledInAt;
query.CallerRequest = gate.CallerRequest;
query.ContactPersonOnSite = gate.ContactPersonOnSite;
query.Email = gate.Email;
query.EmailSitePerson = gate.EmailSitePerson;
dc.SaveChanges();
}
}
catch (Exception ex)
{
throw ex;
}
}
它没有异常或错误消息,但不会将更改保存到数据库中。为什么不更新记录?
最佳答案
修改query
对象后,应在调用Modified
之前将其状态更改为context.SaveChanges()
。您的上下文对象应了解您修改的实体。假设dc
是您的上下文对象:
query.CalledInAt = gate.CalledInAt;
//change other properties ..
dc.Entry(query).State = EntityState.Modified;
dc.SaveChanges();
那应该为您工作。
关于asp.net-mvc - Entity Framework 更新记录不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18885991/