zoukankan      html  css  js  c++  java
  • EF容器---代理类对象

     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语句,这只是把对象加入到上下文中,没有告诉上下文是哪个属性被修改了。。

  • 相关阅读:
    ActionMQ
    解决Session共享
    Linux中使用keepalived高可用工具解决宕机问题
    Linux安装Nginx
    Nginx基础
    多线程(1)
    单例模式1(3)
    创建型模式5种(2)
    7原则(1)
    反射使用案例(2)
  • 原文地址:https://www.cnblogs.com/caofangsheng/p/4525928.html
Copyright © 2011-2022 走看看