EF – 5.DbSet與DbContext,數據更新奧秘


5.6.4 《DbSet與DbContext》

介紹DbSet與DbContext中的核心屬性及重要方法。

5.6.5 《數據更新的奧秘》 

這一講極為重要,因為它揭示出了Entity Framework實現數據更新的內部機理,了解這些內容,對於用好Entity Framework非常重要。

 

 

5.6.4 《DbSet與DbContext》

 

image

介紹DbSet與DbContext中的核心屬性及重要方法。

Image 1

 

 

 

 

 

5.6.5 《數據更新的奧秘》

 

這一講極為重要,因為它揭示出了Entity Framework實現數據更新的內部機理,了解這些內容,對於用好Entity Framework非常重要。

Image 2

 

(2)CurrentValue

 

image

 

{  
………
//狀態 [TestMethod] public void TestShowUPMS_UserState() { var users = (from c in context.UPMS_User orderby c.UserId descending select c).FirstOrDefault(); if (users != null) { DbEntityEntry<UPMS_User> entry = context.Entry<UPMS_User>(users); Console.WriteLine("\n修改屬性前的狀態:{0}", entry.State); //Unchanged Helper.PrintEntityPropertyValye(entry); users.UserDescription = "10008"; context.ChangeTracker.DetectChanges();//更新實體對象當前的狀態 //Modified Console.WriteLine("\n修改屬性后的狀態:{0}", entry.State); Helper.PrintEntityPropertyValye(entry); //result 為當前狀態 int result = context.SaveChanges(); Console.WriteLine("\n保存屬性后的狀態:{0}", entry.State); //Unchanged Helper.PrintEntityPropertyValye(entry); } } } public class Helper { public static void PrintEntityPropertyValye(DbEntityEntry<UPMS_User> entry) { string current = entry.CurrentValues["UserDescription"].ToString(); string original = entry.OriginalValues["UserDescription"].ToString(); string database = entry.GetDatabaseValues()["UserDescription"].ToString(); Console.WriteLine("當前值:{0}\n原始值:{1}\n數據庫值:{2}\n", current, original, database); } }

 

Image 4

 

(3)禁用跟蹤狀態(提升性能)

 

只是查詢(只讀)的話。

 

image


免責聲明!

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



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