博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF的基本了解(一)
阅读量:4221 次
发布时间:2019-05-26

本文共 2329 字,大约阅读时间需要 7 分钟。

###1、EF

  EF是微软以ADO.NET为基础发展出来的对象对应关系(O/R Mapping)解决方案,是ADO.NET中的一组支持面向数据的软件应用程序的技术。是微软的一个ORM(object Releations Mapping)框架。
####O/R Mapping
  广义上,ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。
  狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化的一个OO对象应该不需要要了解任何关系型数据库存储数据的实现细节。
  EF是一种程序技术。简单来说,就是将关系型数据库和实体对象进行映射的工具。

####EF开发的两种方式

  1. DataBaseFirst:已经建立好数据库了,从数据库映射模型。
  2. ModelFirst:没有数据库,使用EF设计模型,然后根据模型同步完成数据库中表的创建。

详细的介绍、.

这里写图片描述

  在这里按F4 就可以对实体的属性的类型或名字更改。

###二:EF实现CRUD(增加、查询、更新、删除)

####1、添加

UserInfo userInfo = new UserInfo();userInfo.Email = "sss@256.com";userInfo.RegTime = DateTime.Now;userInfo.UserName = "sss56";userInfo.UserPass="16";EFFristModelEntities db = new EFFristModelEntities();db.UserInfo.Add(userInfo);//将数据添加到EF并且添加了添加标记。db.SaveChanges();//数据才会保存到数据库。,返回受影响的行数。Response.Write(userInfo.ID);

###2、实现查询

查询userInfo表中 id为343的记录,并输出用户的名字。

EFFristModelEntities db = new EFFristModelEntities();//linq表达式var  userInfoList = from u in db.UserInfo                    where u.ID ==343                    select u;int i = 0;foreach (UserInfo userInfo in userInfoList)//EF 延迟加载机制,数据用到的时候才去数据库中查询。不能用的时候不查询。{      Response.Write(userInfo.UserName);}

###3、删除

删除用户id为345的用户。

//(1)第一种方式,先查询出该用户的实体,然后将它打上删除的标记,执行db的保存操作EFFristModelEntities db = new EFFristModelEntities();var userInfoList = from u in db.UserInfo        where u.ID == 345        select u;UserInfo userInfo = userInfoList.FirstOrDefault();//返回第一个元素,如果没有的话,返回nullif (userInfo != null){    db.Entry
(userInfo).State = System.Data.EntityState.Deleted; // db.UserInfo.Remove(userInfo); //和上一行语句的作用完全相同,但是前提需要知道userinfo对象的存在,才可以使用 db.SaveChanges();}else{ Response.Write("要删除的数据不存在!!");}//(2)第二种方式,直接new一个用户实体同时赋值id属性,少做了一次查询UserInfo userInfo = new UserInfo() { ID = 344 };db.Entry
(userInfo).State = System.Data.EntityState.Deleted;db.SaveChanges();

###4、更新操作 (更新用户id为343的密码为666666)

EFFristModelEntities db = new EFFristModelEntities();var userInfoList = from u in db.UserInfo                   where u.ID == 343                   select u;var userInfo = userInfoList.FirstOrDefault();userInfo.UserPass = "666666";db.Entry
(userInfo).State = System.Data.EntityState.Modified;db.SaveChanges();

###总结

   学习到了一个新鲜的技术EF,不仅可以用在MVC的框架中,任何需要使用数据库的都可以使用EF技术,它会自动生成实体类,而且有两种模式,DBFrist和ModelFrist,就可以少了一部分的代码编写,学的东西越多还知道有更多新鲜好玩的技术。

你可能感兴趣的文章
有氧运动和无氧运动 的能量消耗问题
查看>>
力量训练
查看>>
乱码问题!Eclipse 的控制台console必须用GBK编码。【转载】
查看>>
井上三尺的《新聊斋》
查看>>
MySql 中如何连接一列字符串(转)
查看>>
Filter造成的乱码
查看>>
比较狠的减脂计划
查看>>
什么是脂肪
查看>>
形式主义
查看>>
前端学习(三)——CSS的三种写法与优先级
查看>>
@DynamicInsert使用问题
查看>>
Python邮件发送
查看>>
Ajax请求下,sendRedirect无效的问题
查看>>
python数据类型(python cookbook读书笔记一)
查看>>
python cookbook读书笔记二
查看>>
VS添加第三方C/C++库经验
查看>>
无法定位序数55于动态链接库zlib1.dll上
查看>>
sqlalchemy 这原生sql中绑定list
查看>>
rust所有权理解(备忘)
查看>>
Java使用redis+sse实现带频道的网络聊天室
查看>>