文章出處
文章列表
1 #region 修改--官方的修改是,先查詢,然后修改 2 /// <summary> 3 /// 修改--官方的修改是,先查詢,然后修改 4 /// </summary> 5 static void Modify() 6 { 7 //此時返回的是一個Student類的代理類(包裝類)對象 8 Studnet stu = db.Studnets.Where(s => s.s_ID == 14).ToList().FirstOrDefault(); 9 10 //此時其實操作的是代理類的屬性,這些屬性,會將只設置給內部的Student對象對應的屬性,同時標記此屬性為已修改狀態,另外要注意,這里不只是給這個屬性做個標記,同時也對當前對象做了一個標記,標記當前對象已經被修改過。 11 //把id=14的名字改為 12 stu.s_Name = "梁山伯"; 13 stu.s_Sex = "男"; 14 15 //此時EF上下文,會檢查容器內部所有的對象,找到標記為已修改的對象屬性,生成對應的Update語句執行。。 16 //保存到數據庫 17 db.SaveChanges(); 18 19 Console.WriteLine("修改成功"); 20 21 } 22 #endregion
修改的時候不用Attach()方法。 Attach方法,返回的值是實體類對象,看下圖:
//執行這句話之后,沒有生成SQL語句,這只是把對象加入到上下文中,沒有告訴上下文是哪個屬性被修改了。。
文章列表
全站熱搜