一、什么是EF?

ADO.NETEntity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。ADO.NET Entity Framework 以 Entity DataModel (EDM) 为主,将数据逻  辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有Entity Client,Object Context 以及 LINQ 可以使用。

EF的运作流程:

二、如何创建EF:

右击项目——添加——新建项——数据(C#)——选择ADO.NET实体数据模型——点击添加——然后根据实体数据模型向导来一步步的做。

三、实现增删改查功能

方法一

在DAL层写下增删改查操作的代码

<pre name="code" class="csharp"> //EF查询public userinfo GetUser(string username){using (MyShopDBEntities1 entity = new MyShopDBEntities1()){userinfo  user = entity.userinfo.SingleOrDefault(model => model.username == username);return user;}}//修改public userinfo Update(string username,string userpwd){using (MyShopDBEntities1 entity = new MyShopDBEntities1()){// userinfo user = entity.userinfo.SingleOrDefault(model => model.username == username);userinfo user = entity.userinfo.FirstOrDefault(model => model.username == username);if (user != null) {   user.userpassword=userpwd;entity.SaveChanges(); }return user; } }//添加public userinfo Add(userinfo user){using (MyShopDBEntities1 entity = new MyShopDBEntities1()){entity.userinfo.Add(new userinfo(){username = user.username,userpwd = user.userpwd});if (entity.SaveChanges() > 0){return user;}elsereturn null;}}//删除public void Deleted(string  username){using (MyShopDBEntities1 entity = new MyShopDBEntities1()){userinfo user = entity.userinfo.FirstOrDefault(m => m.username == username);if (user != null){entity.userinfo.Remove(user);}if (entity.SaveChanges() > 0){//return 0;}}}

方法二:

 EF4.0和EF5.0增删改查的写法区别及执行Sql的方法EF4.0和EF5.0增删改查的写法区别
public T AddEntity(T entity)
{//EF4.0的写法  添加实体//db.CreateObjectSet<T>().AddObject(entity);//EF5.0的写法db.Entry<T>(entity).State = EntityState.Added;//下面的写法统一db.SaveChanges();return entity;
}
public bool UpdateEntity(T entity)
{//EF4.0的写法//db.CreateObjectSet<T>().Addach(entity);//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);//EF5.0的写法 db.Set<T>().Attach(entity); db.Entry<T>(entity).State = EntityState.Modified; return db.SaveChanges() > 0;
}
public bool DeleteEntity(T entity)
{//EF4.0的写法 //db.CreateObjectSet<T>().Addach(entity);//db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);//EF5.0的写法db.Set<T>().Attach(entity);db.Entry<T>(entity).State = EntityState.Deleted;return db.SaveChanges() > 0;
}public IQueryable<T> LoadEntities(Func<T, bool> whereLambda)
{//EF4.0的写法//return db.CreateObjectSet<T>().Where<T>(whereLambda).AsQueryable();//EF5.0的写法return db.Set<T>().Where<T>(whereLambda).AsQueryable();
}
执行SQL语句
//EF4.0的写法
//int ExcuteSql(string strSql, ObjectParameter[] parameters);
return EFContextFactory.GetCurrentDbContext().ExecuteFunction(strSql, parameters);
//EF5.0的写法int ExcuteSql(string strSql, DbParameter[] parameters);
return DEFContextFactory.GetCurrentDbContext().ExecuteSqlCommand(strSql, parameters);

注:增删改操作必须使用entity.SaveChanges()进行保存一下。entity.SaveChanges()返回值为数据库里受影响的行数entity.SaveChanges()>0表示操作成功。如entity.SaveChanges()=0则表示操作失败。

在BLL和UI层的代码和三层架构的代码一样,我就不一一写了。

使用EF框架实现MVC的增删改查功能!!!Entity Framework相关推荐

  1. MVC新手教程三:Entity Framework 4.0 来实现MVC的增删改查功能,10分钟搞定

    在这一节,我们使用VS2010自带的EF4.0来实现MVC的增删查改功能,为什么用EF呢?因为如果你自己手写sqlhelper之类,或者是用动软,和我们用EF的速度比,太慢太慢··· 当然,新手还是用 ...

  2. 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!

    一丶使用三层架构创建一个简单的MVC登录操作 1.首先,创建一个项目以及BLL层.DAL层.Entity层,如图一: 图一 2.创建一个数据库如图二: 图二 3基本工作已做好,接下来就编BLL层.DA ...

  3. Springboot使用JPA框架对数据库实现增删改查(附详细代码)

    前言 1.本文将详细阐述如何使用JPA框架对数据库实现增删改查操作,业务中比较常见的应用场景几乎在这里都能看到,并且有详尽的代码可供直观演示,其中遇到的坑也进行了实时标注. 2.JPA的环境配置在前面 ...

  4. thinkphp连mysql增删改查_ThinkPHP5.1框架数据库链接和增删改查操作示例

    本文实例讲述了ThinkPHP5.1框架数据库链接和增删改查操作.分享给大家供大家参考,具体如 本文实例讲述了ThinkPHP5.1框架数据库链接和增删改查操作.分享给大家供大家参考,具体如下: 一. ...

  5. Flask框架——数据库操作命令(增删改查)

    目录 创建数据表 添加数据 插入单条数据 插入多条数据 查询数据 全部查询 精确查询 模糊查询 主键查询 排序 修改数据 删除数据 删除数据表 上篇文章我们学习了Flask框架--数据库配置及迁移同步 ...

  6. ext store 数据修改_Go 数据存储篇(一):基于内存存储实现数据增删改查功能...

    在 Web 编程中,经常需要处理用户请求数据,而用户请求数据的处理往往又涉及到数据存储与获取,支持存储数据的媒介很多,包括内存.文件系统.数据库等,接下来,学院君将花几个篇幅的教程来系统介绍 Go W ...

  7. molicode生成vue增删改查功能

    2019独角兽企业重金招聘Python工程师标准>>> molicode生成vue增删改查功能 背景描述 当前生成的页面主要应用于VUE前端UI框架 iview: https://i ...

  8. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id=&q ...

  9. 创建vue+iview项目实现分页增删改查功能

    iview+vue实现分页增删改查功能 一. 后台代码 二.前端工具是webstorm,直接上测试相应js接口 三.相应的页面 四.效果展示 上一片文章总结了下如何创建一个vue项目,前端框架使用iv ...

最新文章

  1. Windows 64位驱动 关闭内存保护
  2. 把2018年所有踩过的坑都记在这里。
  3. 【Python应用】Python+Kepler.gl轻松制作酷炫路径动画
  4. MySQL MyISAM/InnoDB高并发优化经验
  5. 3个常考的SQL数据分析题(含数据和代码)
  6. 54include对象
  7. AT91SAM9260EK-38k产生原理
  8. mysql 回滚_一个集审核、执行、备份及生成回滚语句于一身的MySQL运维工具
  9. ASP.NET 实践:在非层次化控件中显示网站地图的数据
  10. 动态规划(四)--最长公共子序列
  11. python assert_Python中何时使用断言 assert
  12. python常用字符串方法_python基础之字符串常用方法
  13. Eureka源码深度刨析-(5)EurekaServer处理服务发现
  14. 博科光纤交换机默认密码更改
  15. python刷网易云_如何用Python爬取网易云歌曲?秘诀在这~
  16. linux sudo命令全称,你知道Linux系统中的sudo 命令吗?
  17. 解决Can't locate Time/HiRes.pm in @INC问题
  18. Python中getA() 的意思
  19. 最全的硬盘修复专题帖1(转贴)
  20. web前端CSS选择符:表示要定义样式的对象

热门文章

  1. 专家点评Nature Plants | 中科院微生物所郭惠珊研究组揭示土传病原菌逃避寄主免疫的新机制...
  2. 一顿“寄生虫大餐”,或能治好干净引来的免疫病
  3. 菌群与疾病的关系探讨之一:先有鸡还是先有蛋?
  4. R语言构建xgboost模型并评估模型(测试集、训练集每一轮):误分类率指标(misclassification rate)、logloss
  5. R语言attach函数、detach函数(全局注册或者全局解除)实战
  6. plotly可视化绘制多图(multiplot)
  7. R删除冗余行数据基于dplyr包
  8. 随机梯度下降分类器(SGDClassifier)
  9. 决策树ID3、决策树C4.5、决策树CART、CART树的生成、树的剪枝、从ID3到CART、从决策树生成规则、决策树优缺点
  10. 梯度下降之模拟退火、梯度下降之学习计划、牛顿法、拟牛顿法、共轭梯度法