EntityFramework 更新數據的幾種方法


第一種:

先從數據庫中取出數據,然后再更新字段。效率較低,需要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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM