文章出處

 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語句,這只是把對象加入到上下文中,沒有告訴上下文是哪個屬性被修改了。。

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()