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

5.6.4 《DbSet與DbContext》 數據庫

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

5.6.5 《數據更新的奧祕》  spa

這一講極爲重要,由於它揭示出了Entity Framework實現數據更新的內部機理,瞭解這些內容,對於用好Entity Framework很是重要。3d

 

 

5.6.4 《DbSet與DbContext》 code

 

image

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

Image 1

 

 

 

 

 

5.6.5 《數據更新的奧祕》blog

 

這一講極爲重要,由於它揭示出了Entity Framework實現數據更新的內部機理,瞭解這些內容,對於用好Entity Framework很是重要。ip

Image 2

 

(2)CurrentValuestring

 

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)禁用跟蹤狀態(提高性能)it

 

只是查詢(只讀)的話。

 

image

相關文章
相關標籤/搜索