asp.net-mvc - Entity Framework 更新记录不起作用

标签 asp.net-mvc linq 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;
            }



        }

它没有异常或错误消息,但不会将更改保存到数据库中。为什么不更新记录?

最佳答案

修改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/

相关文章:

c# - MVC 应用程序过期应用程序 Cookie

ASP.NET MVC3 角色和权限管理 -> 使用运行时权限分配

c# - Linq 多对多包括

c# - 如何获取字符串数组中对象列表的特定字段

c# - Entity Framework ——规范函数与 Linq 有何不同——Linq-to-Entities 与规范函数

wcf - 通过WCF的 Entity Framework 导航属性循环问题

c# - 我的单元测试有效, Controller 中的相同代码不起作用

jquery - 多个ajax请求非常慢的mvc

c# - 从具有多个条件的数据表中选择

c# - 两列中的外键和导航属性