EF容器---代理类对象
#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容器---代理类对象的更多相关文章
- 用cglib包来为类产生动态代理类对象
一:在JDK里也有动态代理的类和接口,是Proxy和InvocationHandler,但是Proxy只能为接口产生代理类,借助InvocationHandler的实现类来完成对类对象的代理: 但是在 ...
- c++中代理类的学习
https://blog.csdn.net/lcg910978041/article/details/51468680 C++代理类是为了解决这样的问题: 容器通常只能包含一种类型的对象,所以很难在容 ...
- Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取
在文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码中我们提到了两个问题: 1,为什么在以前的代码流程中从来没有addMapper,而这里却有getMapper? 2,UserDao ...
- python cookbook第三版学习笔记十四:类和对象(五)代理类以及内存回收
代理类: 代理类的作用其实有继承有些类似,如果你想将某个实例的属性访问代理到内部另外一个实例中去,可以用继承也可以用代理.来看下代理的应用: class A: def spam(self,x) ...
- spring的ioc容器生成的对象也是代理对象对吗
一直以为spring的ioc容器生成的对象都是代理对象,其实这个是错误的.spring ioc默认的都是原生对象 只有通过aop增强的对象才是代理对象 有@Transactional 注解或者配置 ...
- Emit动态生成代理类用于监控对象的字段修改
利用Emit动态生成代理对象监控对象哪些字段被修改,被修改为什么值 被Register的对象要监控的值必须是Virtual虚类型 必须使用CreateInstance创建对象 必须使用DynamicP ...
- 【C++沉思录】代理类
1.考虑下面的场景:设计一个容器,包含一组类型不同但相互关联的对象(比如:Animal,Dog,Cat),对象具备多态行为.2.容器一般只能包含一种类型的对象,使用vector<Animal&g ...
- EF Dal通用类
一个通用的ef dal处理类是非擦汗那个提高工作效率的 using System; using System.Collections.Generic; using System.Data.Enti ...
- C++的代理类
怎样在一个容器中包含类型不同,但是彼此有关系的对象?众所周知,C++的容器只能存放类型相同的元素,所以直接在一个容器中存储不同类型的对象本身是不可能的,只能通过以下两种方案实现: 1. 提供一个间接层 ...
随机推荐
- 使用sqlserver的游标功能来导数据的常见写法
一定要自己试过才知道么? 你也没试过吃屎,你怎么知道屎不能吃,难道你试过啊...(没有愤怒的意思) ),),) declare cursor_data CURSOR FOR SELECT [UserN ...
- Linux 求文件交集 差集等
使用comm命令 假设两个文件FILE1和FILE2用集合A和B表示,FILE1内容如下: a b c e d a FILE2内容如下: c d a c 基本上有两个方法,一个是comm命令,一个是g ...
- Windows下修改Oracle默认的端口1521
数据库最好不对公网开放,如果要开放,最好把默认端口改掉,防止一些针对 1521端口的入侵 1.找到 product\11.2.0\dbhome_1\NETWORK\ADMIN 下面的 listene ...
- iOS 实现快速切换主题详细教程(附上源码)
前言 iOS 实现主题切换,相信在未来的app里也是会频繁出现的,尽管现在只是出现在主流的APP,如(QQ.新浪微博.酷狗音乐.网易云音乐等),但是现在是看颜值.追求个性的年代,所以根据用户喜好自定义 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】连载导读
前言: 无数昼夜的来回轮替以后,这本<驱动篇I>终于编辑完毕了,笔者真的感动到连鼻涕也流下来.所谓驱动就是认识硬件,还有前期建模.虽然<驱动篇I>的硬件都是我们熟悉的老友记,例 ...
- 【openwrt】再设置
https://wiki.openwrt.org/zh-cn/doc/uci/network https://wiki.openwrt.org/zh-cn/doc/uci/wireless https ...
- golang append
1) Append a slice b to an existing slice a: a = append(a, b...) 2) Copy a slice a to a new slice b: ...
- CSS技巧(二):CSS hack
什么是CSS hack CSS hack由于不同的浏览器,比如IE6,IE7,Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果. 这个时候我们就需 ...
- 使用NSKeyedArchiver归档
将各种类型的对象存储到文件中,而不仅仅是字符串.数组和字典类型,有一种更灵活的方法.就是利用NSKeyedAarchiver类创建带键(keyed)的档案来完成. Mac OS X从版本10.2开始支 ...
- spring中bean配置和bean注入
1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean ...