EntityFramework数据持久化复习资料3、EntityFramework引入
前言
微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上。开发人员使用Linq语言,对数据库操作如同操作Object对象
一样省事。EF有三种使用场景,1. 从数据库生成Class,2.由实体类生成数据库表结构,3.通过数据库可视化设计器设计数据库,同时生成实体类。
ORM (对象关系型映射)是将数据存储从域对象自动映射到关系型数据库的工具。ORM主要包括3个部分:域对象、关系数据库对象、映射关系。ORM使类提供自动化CRUD,使
开发人员从数据库API和SQL中解放出来。以前是使用ADO.NET来进行对数据库中得数据表进行操作,现在,使用ORM直接对对象进行操作,操作对象就等于操作数据库表,
那怎么让对象和数据库表一一对应起来?这个过程就是通过ORM框架来完成的,操作对象就是操作数据库也是通过ORM来完成的。ORM框架就是做对象和数据库的映射的。
那么EntityFramework的作用是什么?
我的理解就是大大简化数据库操作的,举个例子:在没有使用EF前,我们要编写复杂的SQL语句,而使用了EF之后,将会减少编写复杂的SQL语句过程。
开发环境
系统环境:win7及以上,本示例环境win11
开发工具:Visual Studio 2017及以上
创建项目:
控制台请创建【控制台应用(.NET Framework)】
Web请创建【ASP.NET Web应用程序(.NET Framework)】
数据库:SQLServer数据库2012及以上版本·如果下载最新版本,使用免费版本即可。
本地数据库链接:【.】或【127.0.0.1】
登陆方式1:【本地登陆】
登陆方式2:账号【sa】 pwd【admin】
测试数据库名称:【mytest】
排序规则:【Chinese_PRC_CI_AS】
本次示例环境【Visual Studio 2022】
环境
确认开启SQLServer数据库
服务快捷键【Ctrl】+【Shift】+【ESC】选择服务即可。
创建练习数据库
使用【.】进行本地连接
创建数据库
创建数据表结构
添加测试数据
查询测试
新建查询后输入SQL语句,点击执行后查看结果。
创建测试项目【控制台应用】
项目创建
创建项目名
添加EF完整过程
1、添加类
2、添加【ADO.NET实体数据模型】
选择左侧菜单的数据可以快速选择。
3、从数据库导入
如果是2012版本的话只有2个选项,选择默认的第一个从数据库导入即可。
4、新建SQLServer数据库链接
5、添加【Microsoft SQL Server】数据源
6、数据库链接属性确认链接到具体数据库
7、确认数据库链接字符串
8、确认实体框架版本6.x
9、选择引入表
10、添加文件信任
11、引入完成
12、使用对象
EF_CRUD测试
1、查询测试
using (mytestEntities db = new mytestEntities()) { List<users> list = db.users.ToList(); foreach (var user in list) { Console.WriteLine(user.id); Console.WriteLine(user.userName); Console.WriteLine(user.sex); Console.WriteLine(user.age); Console.WriteLine(user.introduce); Console.WriteLine("-----------------"); } }
2、增加测试
using (mytestEntities db = new mytestEntities()) { users u = new users(); u.id = 0; u.userName = "龙姑娘"; u.sex = false; u.age = 16; u.introduce = "想过过过儿过过的日子"; db.users.Add(u); int rows = db.SaveChanges(); Console.WriteLine(rows > 0 ? "添加成功" : "添加失败"); List<users> list = db.users.ToList(); foreach (var user in list) { Console.WriteLine(user.id); Console.WriteLine(user.userName); Console.WriteLine(user.sex); Console.WriteLine(user.age); Console.WriteLine(user.introduce); Console.WriteLine("-----------------"); } }
3、修改(直接修改上下文后提交SaveChanges即可)
using (mytestEntities db = new mytestEntities()) { users u = db.users.Where (o => o.userName.Equals("龙姑娘")) .SingleOrDefault(); u.introduce = "龙姑娘有龙姑娘的潇洒。"; int rows = db.SaveChanges(); Console.WriteLine(rows > 0 ? "修改成功" : "修改失败"); List<users> list = db.users.ToList(); foreach (var user in list) { Console.WriteLine(user.id); Console.WriteLine(user.userName); Console.WriteLine(user.sex); Console.WriteLine(user.age); Console.WriteLine(user.introduce); Console.WriteLine("-----------------"); } }
4、删除功能
using (mytestEntities db = new mytestEntities()) { users u = db.users.Where (o => o.userName.Equals("龙姑娘")) .SingleOrDefault(); //删除 db.users.Remove(u); int rows = db.SaveChanges(); Console.WriteLine(rows > 0 ? "删除成功" : "删除失败"); List<users> list = db.users.ToList(); foreach (var user in list) { Console.WriteLine(user.id); Console.WriteLine(user.userName); Console.WriteLine(user.sex); Console.WriteLine(user.age); Console.WriteLine(user.introduce); Console.WriteLine("-----------------"); } }
总结
非常重要的EF操作,一定要好好练习,考试就考这个东西。使用ASP.NETWeb的技术显现出来操作过程,好好练习哈。