在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。并且灵活一些。

最新文章

  1. 如何在Zabbix上安装MySQL监控插件PMP
  2. WebService及WCF获取客户端IP,端口
  3. 在Web应用中接入微信支付的流程之极简清晰版 (转)
  4. 【现代程序设计】homework-09
  5. Ubuntu 14.04中文输入法的安装
  6. 查看django里所有的url
  7. CentOS设置服务开机启动的方法
  8. 解决FPDF报错:FPDF error: Not a JPEG file / FPDF error: Not a PNG file
  9. gVim多标签页
  10. 【译】ASP.NET MVC 5 教程 - 11:Details 和 Delete 方法详解
  11. 在鼠标右键添加“使用WPS打开”
  12. codeforces 591B Rebranding (模拟)
  13. line-height与height
  14. centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展
  15. 【LeetCode刷题系列 - 002题】Add Two Numbers
  16. win7共享打印机如何设置,xp系统如何连接共享打印机。
  17. 2016年3月8日Android实习日记
  18. 4698: Sdoi2008 Sandy的卡片
  19. 用mysql存储过程代替递归查询
  20. 第十一章 dubbo通信框架-netty4

热门文章

  1. 【WIN10】Bind、Binding與Converter的使用
  2. HDU2874【倍增、ST】
  3. PHP 笔记——Array 数组
  4. [BZOJ3140][HNOI2013]消毒(二分图最小点覆盖)
  5. HDU 5909 Tree Cutting(FWT+树形DP)
  6. UI/GUI/UE/UX/ID/UED/UCD的区别
  7. poj2117 Electricity
  8. 使用牛顿迭代法和二分法求解一个数的平方根(python语言实现)
  9. Linux下使用ISC DHCP可以实现动态推送静态路由表
  10. 深入Delphi下的DLL编程