#region 修改--官方的修改是,先查询,然后修改
/// <summary>
/// 修改--官方的修改是,先查询,然后修改
/// </summary>
static void Modify()
{
//此时返回的是一个Student类的代理类(包装类)对象
Studnet stu = db.Studnets.Where(s => s.s_ID == ).ToList().FirstOrDefault(); //此时其实操作的是代理类的属性,这些属性,会将只设置给内部的Student对象对应的属性,同时标记此属性为已修改状态,另外要注意,这里不只是给这个属性做个标记,同时也对当前对象做了一个标记,标记当前对象已经被修改过。
//把id=14的名字改为
stu.s_Name = "梁山伯";
stu.s_Sex = "男"; //此时EF上下文,会检查容器内部所有的对象,找到标记为已修改的对象属性,生成对应的Update语句执行。。
//保存到数据库
db.SaveChanges(); Console.WriteLine("修改成功"); }
#endregion

修改的时候不用Attach()方法。  Attach方法,返回的值是实体类对象,看下图:

//执行这句话之后,没有生成SQL语句,这只是把对象加入到上下文中,没有告诉上下文是哪个属性被修改了。。

EF容器---代理类对象的更多相关文章

  1. 用cglib包来为类产生动态代理类对象

    一:在JDK里也有动态代理的类和接口,是Proxy和InvocationHandler,但是Proxy只能为接口产生代理类,借助InvocationHandler的实现类来完成对类对象的代理: 但是在 ...

  2. c++中代理类的学习

    https://blog.csdn.net/lcg910978041/article/details/51468680 C++代理类是为了解决这样的问题: 容器通常只能包含一种类型的对象,所以很难在容 ...

  3. Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取

    在文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码中我们提到了两个问题: 1,为什么在以前的代码流程中从来没有addMapper,而这里却有getMapper? 2,UserDao ...

  4. python cookbook第三版学习笔记十四:类和对象(五)代理类以及内存回收

    代理类: 代理类的作用其实有继承有些类似,如果你想将某个实例的属性访问代理到内部另外一个实例中去,可以用继承也可以用代理.来看下代理的应用: class A:     def spam(self,x) ...

  5. spring的ioc容器生成的对象也是代理对象对吗

    一直以为spring的ioc容器生成的对象都是代理对象,其实这个是错误的.spring ioc默认的都是原生对象  只有通过aop增强的对象才是代理对象 有@Transactional  注解或者配置 ...

  6. Emit动态生成代理类用于监控对象的字段修改

    利用Emit动态生成代理对象监控对象哪些字段被修改,被修改为什么值 被Register的对象要监控的值必须是Virtual虚类型 必须使用CreateInstance创建对象 必须使用DynamicP ...

  7. 【C++沉思录】代理类

    1.考虑下面的场景:设计一个容器,包含一组类型不同但相互关联的对象(比如:Animal,Dog,Cat),对象具备多态行为.2.容器一般只能包含一种类型的对象,使用vector<Animal&g ...

  8. EF Dal通用类

    一个通用的ef  dal处理类是非擦汗那个提高工作效率的  using System; using System.Collections.Generic; using System.Data.Enti ...

  9. C++的代理类

    怎样在一个容器中包含类型不同,但是彼此有关系的对象?众所周知,C++的容器只能存放类型相同的元素,所以直接在一个容器中存储不同类型的对象本身是不可能的,只能通过以下两种方案实现: 1. 提供一个间接层 ...

随机推荐

  1. css强制换行和超出隐藏实现

        一.强制换行1 word-break: break-all; 只对英文起作用,以字母作为换行依据. 2 word-wrap: break-word; 只对英文起作用,以单词作为换行依据. 3 ...

  2. ADT公司G729 方案指标

    ADT公司G729 方案指标 G.729 Voice Compression Algorithm and its many annexes G.729 is used in wireless voic ...

  3. 手动安装 atom 扩展包 packages

    由于某些原因, 我们下载 atom 扩展时发现速度特别慢, 或者根本无法下载, 那我们可以尝试手动安装 首先, 从 github 上下载(或其它地方) 扩展包, 解压 进入该文件夹, 找到 packa ...

  4. VC++ 学习笔记(二):VC++与C、VB和C#

    罗马不是一天建成的,VC++的也不是凭空产生的——它一直标榜自己的从C发展而来的.VB好像是专门为了羞辱VC++而创建的.C#呢,是微软类C语言的新秀——其实也不新了.乱吧?貌似挺乱的,其实这里有章可 ...

  5. JS回到顶部代码小记

    HTML: <div id="goTop"> <a href="#top"><img src="~/Content/th ...

  6. RedRabbit——基于BrokerPattern服务器框架

    RedRabbit 经典网游服务器架构 该图省略了专门用途的dbserver.guildserver等用于专门功能的server,该架构的优点有: l LoginGate相当于DNS,可以动态的保证G ...

  7. JVM性能分析与优化

    JVM性能分析与优化: http://www.docin.com/p-757199232.html

  8. WPF常用控件样式集锦

    1.不规则形状按钮(通过更改path实现) <Style x:Key="ButtonStyleForPath" TargetType="{x:Type Button ...

  9. C++ Low level performance optimize

    C++ Low level performance optimize 1.  May I have 1 bit ? 下面两段代码,哪一个占用空间更少,那个速度更快?思考10秒再继续往下看:) //v1 ...

  10. system 函数

    相关函数:fork, execve, waitpid, popen 头文件:#include <stdlib.h> 定义函数:int system(const char * string) ...