EntityFramework数据持久化复习资料6、EntityFramework引入

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: EntityFramework数据持久化复习资料6、EntityFramework引入

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的技术显现出来操作过程,好好练习哈。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
7月前
|
SQL 开发框架 .NET
EntityFramework数据持久化复习资料5、LINQ概述与应用(超终点)
EntityFramework数据持久化复习资料5、LINQ概述与应用(超终点)
67 0
|
7月前
|
SQL 存储 开发框架
EntityFramework数据持久化复习资料4、Lambda表达式的使用(重点内容)
EntityFramework数据持久化复习资料4、Lambda表达式的使用(重点内容)
55 0
|
6月前
|
SQL 存储 Oracle
老程序员分享:petshop详解之二:PetShop数据访问层之数据库访问设计
老程序员分享:petshop详解之二:PetShop数据访问层之数据库访问设计
|
7月前
|
SQL 存储 开发框架
EntityFramework数据持久化复习资料1、委托
EntityFramework数据持久化复习资料1、委托
63 0
|
SQL 缓存 开发框架
推荐一个EntityFramework扩展的开源项目
通过必备功能扩展了DbContext:包括过滤器,缓存,提前查询,批量操作等EF扩展功能。
131 0
推荐一个EntityFramework扩展的开源项目
|
存储 数据库 Swift
SwiftUI极简教程20:CoreData数据持久化框架的使用(上)
SwiftUI极简教程20:CoreData数据持久化框架的使用(上)
1372 1
SwiftUI极简教程20:CoreData数据持久化框架的使用(上)
|
存储 数据库 索引
SwiftUI极简教程22:CoreData数据持久化框架的使用(下)
SwiftUI极简教程22:CoreData数据持久化框架的使用(下)
689 0
SwiftUI极简教程22:CoreData数据持久化框架的使用(下)
|
存储 安全 iOS开发
SwiftUI极简教程21:CoreData数据持久化框架的使用(中)
SwiftUI极简教程21:CoreData数据持久化框架的使用(中)
459 0
SwiftUI极简教程21:CoreData数据持久化框架的使用(中)
|
存储 SQL Java
Spring Data开发手册|手摸手教你简化持久层开发工作
Spring Data,是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍然保留底层数据存储的特殊特性。它是对于数据访问技术,关系数据库和非关系数据库,map-reduce框...
182 0