温故而知新之EF框架

本文介绍了ORM的概念,强调其作为对象关系映射的作用,解释了Entity Framework (EF)在ADO.NET中的地位,以及如何通过EF进行数据库操作,包括添加、修改、删除和查询实体信息。文章以T_student表为例展示了具体的操作步骤,并强调了复习和理解这些基础知识的重要性。
摘要由CSDN通过智能技术生成

前言


       昨天师父给我验收ssh网上商城,问了我几个问题,但是我都回答不上来,于是师父叫我把这些问题几下来,在接下来的ssh架构学习里就带着这问题学习。可是对于EF和ORM这两块知识理解真的不多,所以今天就回来看看第一次进入ITOO时候发的资料。一天学习下来,对于EF框架和ORM框架也算是有了一个大致了解。


ORM

   

   O为Object,即对象,R为Relational ,即关系,M为 Mapping,映射。ORM也就是对象关系映射,用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM框架帮助我们跟踪所有表实体的变化,并将实体的变化翻译成sql脚本,并执行到数据库里面去,也就是讲实体的变化映射到数据库表的变化。ORM最基本的工作就是翻译sql脚本。

     它的执行过程如下图:

                        

 


EF

       EF也就是Entity Framework,ADO.NET Entity Framework是微软以ADO.NET为基础所发展出来的对象关系(ORM)解决方案,早期被称为ObjectSpace。EF是asp.net MVC与ADO.NET 相对应的关系,EF是ADo.net中的一组支持开发面向数据的软件应用程序的技术。EF跟踪实体变化,然后将实体变化映射到数据库中的表,EF和Hibernate一样是实现ORM这种思想的一种框架。所以EF和Hibernate的理念是一样的。


应用程序通过EF操作数据库


      ORM提供的不只是描述不同对象间的关系的一个简单而直接的方式,更重要的是ORM提供了灵活性,使得我们操作数据库更加简便灵活。而且可以通过配置文件更改不同的数据库,在ITOO5.0的时候,我们把sql server数据库改成了MySQL数据库,从中虽然遇到了一些问题,但我们也从中感觉到了EF的灵活性。


    下面以T_student表为例子进行增删改查操作,前面的ADO.net实体数据模型的具体转换步骤我就省了,直接到了代码。


   添加数据库里的实体信息

      

<span style="font-size:18px;"> //所有对数据库的第一个操作就是创建数据库的访问的上下文
       JFHZEntities dbcontext = new JFHZEntities();
       T_Student student = new T_Student();
       //设置实体
       student.Class = "11";
       student.Department = "文学院";
       student.Grade = "大四";
       student.Sex = "女";
       student.StudentName = "杨月娥";
       student.StudentNo = "11";
       dbcontext.T_Student.Add(student);//代表往Dbcontext指向的数据中的student表添加一条数据:student
       dbcontext.SaveChanges();//真正的保存到数据库</span>


修改数据库里的实体信息


<span style="font-size:18px;"> //所有对数据库的第一个操作就是创建数据库的访问的上下文
            JFHZEntities dbcontext = new JFHZEntities();
            T_Student student = new T_Student();
            //设置实体
            student.Class = "11";
            student.Department = "文学院";
            student.Grade = "大四";
            student.Sex = "女";
            student.StudentName = "杨月娥";
            student.StudentNo = "11";    
            //    //修改实体    
            //第一步:将当前实体附加到上下文里面来进行管理
            dbcontext.T_Student.Attach(student);
            //把上下文dbcontext跟踪的实例:T_student的状态改成修改状态
            dbcontext.Entry<T_Student>(student).State = EntityState.Modified;
            dbcontext.SaveChanges();</span>


删除数据库里的实体信息

<span style="font-size:18px;">           JFHZEntities dbcontext = new JFHZEntities();
            T_Student student = new T_Student();
            student.StudentNo = "11";
            //第一步:将当前实体附加到上下文里面进行管理
            dbcontext.T_Student.Attach(student);
            //把上下文dbcontext跟踪的实例:T_Student的状态改修改状态
            dbcontext.Entry<T_Student>(student).State = EntityState.Deleted;
            dbcontext.SaveChanges();</span>

查询数据库里的实体信息

      foreach (var student in item)
            {
                Console.WriteLine(student.StudentNo + student.StudentName);
            }
            List<T_Student> listResult = new List<T_Student>();


总结


     这次学习下来即使复习也是学习,把以前落下的补回来,收获了不少,总算是弄明白了ORM和EF这两个知识点。还是不要害怕回去复习,因为复习有时候是为了更好的往下走。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 58
    评论
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值