码迷,mamicode.com
首页 > 其他好文 > 详细

EntityFramework 更新数据的几种方法

时间:2020-01-05 15:59:48      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:name   方法   次数   upd   字段   find   定义   entry   str   

第一种:

先从数据库中取出数据,然后再更新字段。效率较低,需要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 更新数据的几种方法

标签:name   方法   次数   upd   字段   find   定义   entry   str   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!