日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Entity Framework 简单增删改操作

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Entity Framework 简单增删改操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

?在?Entity Framework 簡單查詢操作?中主要是學習了在Entity Framework中的幾種不同模式的查詢操作,現在主要來學習一下簡單的增加、刪除、修改操作。

增加

  在EF中添加操作一般有兩種方式:一是直接創建對象,然后調用“DbSet”的”Add()”方法進行添加;二是調用數據庫上下文的”Entry()”方法并設置對應的狀態。無論使用哪種方式最終一定要調用“SaveChange()”進行提交。如:

using (var db = new EFContext()){var stephen = new Person{PersonName="aehyok0001",Age=25,Address="深圳南山",Email="aehyok@163.com"};db.Persons.Add(stephen);var jeffrey = new Person{PersonName = "aehyok0002",Age = 25,Address = "深圳寶安",Email = "Leo@163.com"};db.Entry(jeffrey).State = EntityState.Added;db.SaveChanges();}

執行后效果如下

?

?此外,在含有導航屬性時,將一個對象賦值給另一個對象的導航屬性也能達到添加的效果(當導航屬性為”DbSet“集合時通過調用導航屬性的“Add()“方法也同樣可以達到添加效果)。

狀態跟蹤

?在這里我們需要強調一點那就是狀態跟蹤,對于上面的操作如果我們調用“Attach()”方法對實體進行跟蹤或者設置實體的狀態那么數據將不會保存到數據庫:

?

這兩句添加任何一句效果都是一樣的,就是都沒有保存到數據庫中。

?

使用”Attach()”方法進行實體跟蹤時會設置實體的狀態為“Unchanged”此時實體處于未修改狀態,當執行“SaveChange()”方法時EF不會執行修改操作。相反如果此時設置實體狀態為“Modified”則EF執行更新操作。那么既然EF的數據修改操作(增加、更新、刪除)是根據實體狀態而進行的,那么為什么之前我們的增加操作能正常進行而不用手動修改其狀態呢?原因是EF會自動發現狀態改變,在調用下面的方法時狀態發現是自動的: ?

當然,并不是所有的時候我們都需要EF自動發現狀態改變,設置 “DbContext.Configuration.AutoDetectChangesEnabled”屬性為“false”可以禁用自動發現功能。

刪除

?現在來看一下Entity Framework的刪除操作

using (var db = new EFContext()){var person = db.Persons.Where(m => m.PersonId == 4).FirstOrDefault();db.Persons.Remove(person);db.SaveChanges();}

當然有了上面狀態跟蹤的討論相信大家也可以想到如下刪除方法:

using (var db = new EFContext()){var person = db.Persons.Where(m => m.PersonId == 5).FirstOrDefault();db.Entry(person).State = EntityState.Deleted;db.SaveChanges();}

上面兩種方法都會達到刪除的目的。

修改

修改數據很簡單,直接修改對應的屬性即可:

using (var db = new EFContext()){var person = db.Persons.Where(m => m.PersonId == 3).FirstOrDefault();person.PersonName="UpdateNewName";db.SaveChanges();}

需要說明的是,EF在執行修改操作前會檢查哪些屬性發生了變化,并且只會修改發生變化的字段。

總結

以上是生活随笔為你收集整理的Entity Framework 简单增删改操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。