5.6.4 《DbSet與DbContext》 數據庫
介紹DbSet與DbContext中的核心屬性及重要方法。性能
5.6.5 《數據更新的奧祕》 spa
這一講極爲重要,由於它揭示出了Entity Framework實現數據更新的內部機理,瞭解這些內容,對於用好Entity Framework很是重要。3d
5.6.4 《DbSet與DbContext》 code
介紹DbSet與DbContext中的核心屬性及重要方法。對象
5.6.5 《數據更新的奧祕》blog
這一講極爲重要,由於它揭示出了Entity Framework實現數據更新的內部機理,瞭解這些內容,對於用好Entity Framework很是重要。ip
(2)CurrentValuestring
{
………
//狀態 [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); } }
(3)禁用跟蹤狀態(提高性能)it
只是查詢(只讀)的話。