首页 > 其他 > 详细

EntityFramework 更新数据的几种方法

时间:2020-01-05 15:58:03      阅读:92      评论:0      收藏:0      [点我收藏+]

第一种:

先从数据库中取出数据,然后再更新字段。效率较低,需要2次数据库操作;

using (var db = new Entities())
{
    var data = db.Member.Find(5);
    data.Name = "new name";
    db.SaveChanges();
}

生成的sql语句是:

select * from Member where ID=5
update Member set Name = new name where ID=5

 

第二种:

根据主键更新某个字段。如下虽然定义的变量里有password,但是没有设置ismodified=true,所以在savechanges时只会更新name的值

using (var db = new Entities())
{
    var data = new Member() { ID = 5, Name = "aa", Password = "aa" };
    db.Entry(data).State = EntityState.Unchanged;// 或db.Member.Attach(data);  
    db.Entry<Member>(data).Property("Name").IsModified = true;
    db.SaveChanges(); 
}

 

生成的sql语句是:

update Member set Name=aa where ID=5

 

第三种:

根据主键更新所有字段,如下虽然未定义password,但到数据库中会更新为null

using (var db = new ScratchDB2Entities())
{
    var data = new Member() { ID = 5, Name = "aa" };
    db.Entry(data).State = EntityState.Modified;
    db.SaveChanges();
}

 

生成的sql语句是:

update Member set Name=aa,Password=null where ID=5

 

EntityFramework 更新数据的几种方法

原文:https://www.cnblogs.com/xbzhu/p/12152503.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!