Entity FrameWork 增刪查改的本質


之前的文章里面已經說了,EF的增刪查改。那時候的修改,刪除,只能是先查詢出來要修改的數據,再修改,刪除。。。現在來一個改進版的,增刪查改。

1.Add

 1     static void Add()
 2         {
 3             //1.創建student對象,並使用對象初始化器,初始化這個對象
 4             Studnet stu = new Studnet()
 5             {
 6                 s_Name = "古巨基",
 7                 s_Sex = "",
 8                 s_Age = 39,
 9                 c_ID = 2,
10 
11             };
12 
13             //2。將對象加入到EF,並獲取當前實體的狀態管理對象
14               DbEntityEntry entry= db.Entry<Studnet>(stu);
15             //3.設置對象的狀態為Added(entry.State)
16               entry.State = System.Data.EntityState.Added;
17             //4.保存到數據庫
18               db.SaveChanges();
19 
20             //測試代碼
21             Console.WriteLine("新增成功");
22         }
ADD

 

2.Modify

 1   /// <summary>
 2         /// 自己動手寫修改(優化的修改方式,創建對象直接修改)
 3         /// </summary>
 4         static void Edit()
 5         {
 6 
 7             //1.查詢出一個要修改的對象
 8             Studnet stu = new Studnet()
 9             {
10                 //1.查詢出一個要修改的數據
11                 //數據庫中有s_ID為12的數據,這句話的意思是,把s_ID=12的記錄的
12                 //名字改為“小白!!!”,性別改為“女”,年齡改為“23”
13                 s_ID = 12,
14                 s_Name = "小白!!!",
15                 s_Sex = "",
16                 s_Age = 23,
17             };
18 
19             //2,把對象加入到EF容器,並獲取當前實體對象的狀態管理對象
20              DbEntityEntry entry=db.Entry<Studnet>(stu);
21             //3.設置該對象未被修改過,Unchanged.
22              entry.State = System.Data.EntityState.Unchanged;
23             //4.設置修改過的屬性
24              entry.Property("s_Name").IsModified = true;
25              entry.Property("s_Sex").IsModified = true;
26              entry.Property("s_Age").IsModified = true;
27 
28             //5.保存數據庫
29              db.SaveChanges();
30 
31             //---測試
32              Console.WriteLine("修改成功");
33         
34         }
Modify

 

3Delete

 1  /// <summary>
 2         /// 刪除
 3         /// </summary>
 4         static void Delete()
 5         {
 6            
 7             //1創建需要刪除的對象,這里只是測試,刪除Id=15的數據
 8             Studnet stu = new Studnet() { s_ID = 15};
 9            
10             //2將對象加入到EF容器,並獲取當前對象的狀態管理對象
11             DbEntityEntry<Studnet> entry= db.Entry<Studnet>(stu);
12             
13 
14             //3.把對象的狀態改為Deleted
15             entry.State = System.Data.EntityState.Deleted;
16 
17             //4把數據保存到數據庫
18             db.SaveChanges();
19             //測試用-----------------------
20             Console.WriteLine("刪除成功");
21         }
Delete

 


免責聲明!

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



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