###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设计模型,然后根据模型同步完成数据库中表的创建。

详细的介绍DataBaseFirst、ModelFirst.


  在这里按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.UserInfowhere u.ID ==343select 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.UserInfowhere u.ID == 345select u;
UserInfo userInfo = userInfoList.FirstOrDefault();//返回第一个元素,如果没有的话,返回null
if (userInfo != null)
{db.Entry<UserInfo>(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>(userInfo).State = System.Data.EntityState.Deleted;
db.SaveChanges();

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

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

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

EF的基本了解(一)相关推荐

  1. Linux shell 学习笔记(2)— 监测程序、磁盘空间和处理文件(ps -ef、top、kill、df、du 、grep、tar)

    1. 监测程序 1.1 检查进程 默认情况下,ps 命令只会显示运行在当前控制台下的属于当前用户的进程. $ ps PID TTY TIME CMD 3081 pts/0 00:00:00 bash ...

  2. ps -ef 的含义

    在linux中ps一般后面加上-ef来显示详细的进程信息 一般我们使用的时候会在后面添加grep 例如: ps -ef|grep java 显示java 的所有进程,当然我们也可以不输入完整例如ps ...

  3. hnswlib RuntimeError: Cannot return the results in a contigious 2D array. Probably ef or M is to sma

    1. 问题现象 index = hnswlib.Index(space = '100', dim = 512) index.init_index(max_elements = 100, ef_cons ...

  4. 一个简单实用的,基于EF的三层架构

    到底什么样的框架才是好框架呢?或许不同人有不同的看法.我个人觉一个好的框架,最重要的要是简单实用,能快速适开发,可维护性高(不会出现复制黏贴的代码),并能快速响应各种业务场景的变化的框架,同时性能不会 ...

  5. EF-Entity Framework 相关技术点收集贴

    不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...

  6. asp.net mysql 创建变_[ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型...

    [ASP.net教程]EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型 0 2018-06-30 07:00:08 官方教程: ...

  7. EF 批量 添加 修改 删除

    1批量添加    db.T_Investigator.AddRange(list) 2批量删除    db.T_Investigator.RemoveRange(list) 3批量修改   for 循 ...

  8. C#学习-EF在三层中使用

    1.搭建普通三层 DAL层,BLL层,Model层,Web层: DAL层引用Model层 BLL层引用DAL层和Model层 Web层引用BLL层和Model层 2.实现EF三层的搭建(添加引用,修改 ...

  9. 关于EF中ApplyCurrentValues和ApplyOriginalValues区别

    关于EF中ApplyCurrentValues和ApplyOriginalValues区别:两者都是编辑数据时使用. //         // 摘要:         //     将 System ...

  10. ef core mysql 字符集,EF Core 基础知识

    数据库连接字符串 在 ASP.NET Core 添加配置片段: { "ConnectionStrings": { "BloggingDatabase": &qu ...

最新文章

  1. 使用String()解决utf-8字符转GB2312的问题
  2. 多名分析师上调苹果目标股价,网络推广外包下苹果发展前景仍可观
  3. Twitter是如何做到每秒处理3000张图片的?
  4. 封装函数 f,使 f 的 this 指向指定的对象
  5. BZOJ 3673: 可持久化并查集 by zky
  6. DS1302——51
  7. 实现Windows和Linux之间的文件共享
  8. Asp.net MVC razor语法参考
  9. VBScript学习笔记 - 数组
  10. 通用运输APP/小型物流托运APP/客运班车APP/PHP+MYSQL管理后端
  11. arguments对象
  12. 域做文件服务器,linux 做域文件服务器
  13. IIS------配置.Net 4.0
  14. Spark 系列(十)—— Spark SQL 外部数据源
  15. Android 自定义View加属性动画实现动画时钟
  16. 《C专家编程》:编译器的金科玉律(一)
  17. 敏捷开发模式下测试策略
  18. 【常用方法】小地图的制作
  19. 解决viewpager setCurrentItem 白屏问题
  20. 【收藏】Mimics Lnnovation Suite之导出功能

热门文章

  1. VUE.js组件通信精髓归纳(基础篇)
  2. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
  3. 弘辽科技:拼多多发货中途改地址可以吗?怎么改?
  4. 京东2020年Q2财报数据亮眼:超2000亿净收入背后供应链物流价值释放
  5. moses 编译_傻瓜式MOSES安装
  6. matlab 锁相环仿真,MATLAB锁相环仿真程序求解
  7. 物体识别桌 开发系列之一
  8. 东芝推出具备限流器检测功能的有刷直流电机驱动器IC
  9. 地网导通测试仪_江西地网接地导通测试仪特点
  10. 阿里云服务器遭到DDOS攻击怎么解决