cha*_*ara 8 linq asp.net-mvc entity-framework asp.net-mvc-4
我是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;
}
}
Run Code Online (Sandbox Code Playgroud)
它没有异常或错误消息,但它不会保存对数据库的更改.为什么它没有更新记录?
Ale*_*voi 11
修改query对象后,您应该Modified在调用之前将其状态更改为context.SaveChanges().您的上下文对象应该知道您修改的实体.假设dc是您的上下文对象:
query.CalledInAt = gate.CalledInAt;
//change other properties ..
dc.Entry(query).State = EntityState.Modified;
dc.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
这应该适合你.
您必须使用entityframework选择对象,这样结果对象才是可跟踪的,因此请尝试此操作
using (var dc = new GateEntities())
{
var gate = dc.tblSites.Where(g => g.ID == date.ID).FirstOrDefault();
gate.CalledInAt = gate.CalledInAt;
gate.CallerRequest = gate.CallerRequest;
gate.ContactPersonOnSite = gate.ContactPersonOnSite;
gate.Email = gate.Email;
gate.EmailSitePerson = gate.EmailSitePerson;
dc.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16284 次 |
| 最近记录: |