ASP.NET MVC + EF 更新的几种方式

1.常用

db.Entry(实体).State = EntityState.Modified;
db.SaveChanges();

2.指定更新

db.Configuration.ValidateOnSaveEnabled = false;
db.TUser.Attach(实体);
ObjectStateEntry stateEntry = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(实体);
stateEntry.SetModifiedProperty("字段1");
stateEntry.SetModifiedProperty("字段2");
db.SaveChanges();
db.Configuration.ValidateOnSaveEnabled = true;

3.指定更新(推荐!好用!)

TConsultant model = db.TConsultant.FirstOrDefault(t => t.ID == iID);
if (TryUpdateModel(model, new string[] { "Name", "Sex", "PhoneNuber", "CertificateNumber", "Email", "QQ", "Culture" }))
{
          db.SaveChanges();
          return Content("修改成功!");
}

4.代码部分

[HttpPost]
        /// <summary>
        /// 执行修改的代码
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult Modify(BlogArticle model)
        {
            try
            {
                //1.将实体对象 a.加入 EF 对象容器中,并 b.获取 伪包装类对象
                DbEntityEntry<BlogArticle> entry = db.Entry<BlogArticle>(model);
                //2.将包装类对象的状态设置为 unchanged
                entry.State = System.Data.EntityState.Unchanged;
                //3.设置 被改变的属性
                entry.Property(a => a.ATitle).IsModified = true;
                entry.Property(a => a.AContent).IsModified = true;
                entry.Property(a => a.ACate).IsModified = true;  

                //4.提交到数据库 完成修改
                db.SaveChanges();
                //5.更新成功,则命令浏览器 重定向 到 /Home/List 方法
                return RedirectToAction("Index", "Home");
            }
            catch (Exception ex)
            {
                return Content("修改失败~~~" + ex.Message);
            }
        }
升级版:
db.Entry(model).State = EntityState.Unchanged;
db.Entry(model).Property(m => m.字段名).IsModified = true;
db.SaveChanges();  
时间: 2024-08-18 12:08:50

ASP.NET MVC + EF 更新的几种方式的相关文章

转:ASP.NET MVC + EF 更新的几种方式

1.常用 db.Entry(实体).State = EntityState.Modified;db.SaveChanges(); 2.指定更新 db.Configuration.ValidateOnSaveEnabled = false;db.TUser.Attach(实体);ObjectStateEntry stateEntry = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(

ASP.NET MVC中的Session以及处理方式

最近在ASP.NET MVC项目中碰到这样的情况:在一个controller中设置了Session,但在另一个controller的构造函数中无法获取该 Session,会报"System.NullReferenceException"错误.之所以这样做是因为希望在controller构造函数中获 取Session值并赋值给一个全局变量,好让该controller的多个action共享. 起先以为是ASP.NET State Service服务没有开启,或者是Web.config中se

记录我的ASP.NET MVC+EF的印记

首先我想大家对ASP.NET MVC+EF并不陌生,可悲的是小菜我从2012年知道他的存在直到现在才开始学习.可以说是浪费了很多时间,由于楼主一直使用ADO.NET+三层的模式,所以总觉得有自己的一番天地,同时在此呼吁还有像我一样的橙色猿或攻城师们请正视它,时代的脚步不会因为你们而停留.但最近一段时间可以说是2014年下半年,整个行情都是在使用ASP.NET MVC+EF或者其他持久层来搭建项目.大势所趋不得不正视它了. 楼主的MVC水平还停留在2.0的水平,可想而知.当时是出于项目需要而使用了

ASP.NET MVC+EF框架+EasyUI实现权限管理系列

http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇 前言:博客又有一段时间没有更新了,心里感觉这段时间空空的,好像什么都没有学下,所以就想写博客,所以就有了这个系列,这里当然也要感谢大家了,因这个 项目我已经上传了,得到了很多网友的评价,也有好多人发邮件给我说这个框架容易出现问题,不能访问,这也是支持我写这个系列的动力,我将这个项目写成一个 系列

ASP.NET MVC 表单的几种提交方式

下面是总结一下在ASP.NET MVC中表单的几种提交方式. 1.Ajax提交表单 需要引用 <script type="text/javascript" src="/Scripts/jquery-1.7.2.min.js"></script>    <script src="/Scripts/jquery.validate.min.js" type="text/javascript">&l

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(5)-前台JqueryEasyUI前台实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装 前言:今天经理买了一个诺基亚的Windows Phone 8系统,特感兴趣,所以在哪里看了很长时间,这篇文章就写的有点迟, 从这个Demo开始到现在我已经写了4篇博客了,终于可以看到页面的东

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这篇博客我们继续来实现我的权限系列,这个博客一段时间也没有写了,重点是我在想还写不写,最终我决定还是写下去,因为我们是为了学习,当别人提出意见的时候,我们可以参考和采纳,但是我们不一定非要采纳,上几篇博客大家都说用CodeFirst来实现,是啊,现在基本很少有人用我的这种方法来实现了,都是用CodeF

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现 前言:通过前面的五篇博客我们已经对权限系统的后台架构进行了详细的说明,那么我再前面的博客中也说到了我们的后台架构还会再改的,我准备这段时间我们继续完善我们的后台