EF增删改查的优化
在EF的上一篇博客中已经对它的增删改查有了一个简单的了解。当中的改动过程是先要把要改动的内容查出来然后再进行改动、保存。它详细的过程是这种
首先当在运行查询语句的时候“EF数据上下文”会先訪问数据库进行查询,然后将结果以对象的方式返回到“EF数据上下文中”,EF数据上下文相当于是一个容器,在对象进入到容器中的时候在对象的外側会再进行包装如上图所看到的。这样返回的对象会以“EF包装类对象”存在。同一时候这个对象会有一个标识,当中的每一个属性也都有一个标识,当对其属性进行改动的时候属性标识就会改变,在数据库中就是依据这些标识生成相应的SQL语句的。
可是这样比較麻烦,每次改动前都须要先进行查询,依据以上的原来能够改进出第二种方法。
#region改动改进。不须要先进行查询 Edit1()
///<summary>
///改动改进
/// </summary>
public void Edit()
{
//1、实例化要改动的对象,注意这里属性的值是目标值即改动完以后的值
T_Book book = new T_Book() {bookID="1",bookName="红楼梦" };
//2、将对象增加到EF容器中
DbEntityEntry<T_Book> entry = db.Entry<T_Book>(book);
//3、将整个对象标识为没有改动过
entry.State = System.Data.EntityState.Unchanged;
//4、对要改动的属性的标识进行改动,这是的对象的标识也会改变
entry.Property("bookName").IsModified = true;
//5、保存
db.SaveChanges(); //在进行SaveChanges()的时候,会依据对象的状态、对象中属性的状态生成SQL语句 }
#endregion
相同的原理这样的方法能够再增、删中用。
小结
EF是第一次接触。非常多东西陌生可是又熟悉。它还是对数据库的增删改查仅仅是操作方法是建立在面向对象的基础上的。自己看的视频中有非常多原理老师讲的也比較easy懂得,关于这样原理自己认为研究是有必要的由于结合近期学习和使用AJAX的情况懂得原理了操作起来更easy。并且灵活一些。
EF增删改查的优化的更多相关文章
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系 ...
- 分享一个自己写的MVC+EF “增删改查” 无刷新分页程序
分享一个自己写的MVC+EF “增删改查” 无刷新分页程序 一.项目之前得添加几个组件artDialog.MVCPager.kindeditor-4.0.先上几个效果图. 1.首先建立一个数 ...
- WPF MVVM+EF增删改查 简单示例(二) 1对1 映射
WPF MVVM+EF增删改查 简单示例(一)实现了对学生信息的管理. 现在需求发生变更,在录入学生资料的时候同时需要录入学生的图片信息,并且一名学生只能有一张图片资料.并可对学生的图片资料进行更新. ...
- C# EF增删改查
1.增 //1.创建一个EF数据上下文对象 MyDBEntities context=new MyDBEntities(); //2.将要添加的数据,封装成对象 Users user = new Us ...
- MVC3.0 EF增删改查的封装类
本人亲身使用EF CodeFirst,因为增删改查都是使用EF内置的一些方法,我想把它封装到一个类调用就行了.结合网上的资料和自己的整理,若有不对的地方望斧正,感激不尽.直接上代码吧.我就用新闻的增删 ...
- EF学习笔记-1 EF增删改查
首次接触Entity FrameWork,就感觉非常棒.它节省了我们以前写SQL语句的过程,同时也让我们更加的理解面向对象的编程思想.最近学习了EF的增删改查的过程,下面给大家分享使用EF对增删改查时 ...
- ef增删改查
[C#]Entity Framework 增删改查和事务操作 1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长 ...
- 大数据之路week05--day01(JDBC 初识之实现一个系统 实现用户选择增删改查 未优化版本)
要求,实现用户选择增删改查. 给出mysql文件,朋友们可以自己运行导入到自己的数据库中: /* Navicat MySQL Data Transfer Source Server : mysql S ...
- ASP.NET中使用Entity Framework开发增删改查的Demo(EF增删改查+母版页的使用)
这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾 这里是该项目的第二部分, 第一部分 第二部分(当前部分) 大完结版本 此Demo是新建了一个音乐类型的web,然后使用母版页 ...
随机推荐
- HDU 6194【后缀数组】
题目链接[http://acm.hdu.edu.cn/showproblem.php?pid=6194] 题意: 给你一个长度不大于1e5的字符串,然后然你判断其子串严格出现k次的子串个数. 题解: ...
- 【BZOJ 4170】 4170: 极光 (CDQ分治)
4170: 极光 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 121 Solved: 64 Description "若是万一琪露诺(俗 ...
- ContentType组件,Django缓存机制,跨域请求
ContentType组件 解决什么问题:表的id和数据id,来唯一确定一条数据 用: 插入数据: models:content_obj = GenericForeignKey('table_id', ...
- poj 1456 贪心+STL
题意:有n个商品,每个商品如果能在截止日期之前售出就会获得相应利益,求能获得的最大利益 一开始对每个时间进行贪心,后来发现后面的商品可以放到之前来卖,然后就wa了 这里就直接对价格排序,把物品尽量放到 ...
- bzoj 1029 贪心
贪心的一种,维护一种尽可能优的状态(即不会比最优解差),将这种状态保持到最后. /*********************************************************** ...
- JDK源码(1.7) -- java.util.Deque<E>
java.util.Deque<E> 源码分析(JDK1.7) -------------------------------------------------------------- ...
- Add margining capability to a dc/dc converter
You can easily add margining capability—that is, the ability to digitally adjust the output voltage— ...
- Html基础知识详解
一定要做的符合客户要求,不是自己认为对的. 一.基础标签 1.1 大小颜色位置 <!DOCTYPE HTML> <html> <head> <meta htt ...
- WebService如何抛出干净的异常
转载:http://www.cnblogs.com/ahdung/p/3953431.html 说明:[干净]指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message ...
- APP H5页面显示优化
在开发移动端APP页面时,对各操作系统各种型号的手机进行适配是必须的.然鹅,上周在开发完一个落地页后,被测试给打了回来,其中列出了一个在我看来很小的问题:单击进入页面的时候,页面还没加载完的时候字体显 ...