Asp.net core基础(一)Entity FrameworkCore的增删查改
一、EntityFramework Core的介绍
EntityFramework Core是.net core中的ORM(object relational mapping[对象关系映射])框架,它可以让开发人员以面向对象的方式进行数据库操作,从而提高开发的效率。
ORM是对ADO.NET的封装,ORM底层仍然是通过ADO.NET访问数据库的。
二、EntityFramework Core使用步骤
需要一个T_teachers表,表的列名为Id,Name,Age,T_Number。
步骤一:创建一个对应T_Teachers表的实体类Teacher
public class Teacher
{
public long Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string T_Number { get; set; }
}
步骤二:安装Nuget包Microsoft.EntityFrameworkCore.SqlServer
安装方式一:可以通过程序包管理器控制台
Microsoft.EntityFrameworkCore.SqlServer的6.0.0及以上版本是基于.net6的,由于目前使用的框架是.net core3.1,因此支持.net core3.1的最新版本是5.0.17
安装方式二:使用NuGet程序包进行安装
步骤三:创建实现IEntityTypeConfiguration接口的实体类的配置类。比如给Teacher类实现一个IEntityTypeConfiguration接口的配置类TeacherConfiguration
public class TeacherConfiguration : IEntityTypeConfiguration<Teacher>
{
public void Configure(EntityTypeBuilder<Teacher> builder)
{
//Teacher类对应的表是T_teachers
builder.ToTable("T_teachers"); //设置属性Name的长度为20,不能为空
builder.Property(e => e.Name).HasMaxLength(20).IsRequired(); }
}
步骤四:创建一个实现DbContext类的类。无论多少个实体类,只需要一个实现DbContext类的类。
public class TestDbContext:DbContext
{
//一个实体类,一个DbSet类型的属性
public DbSet<Teacher> Teachers { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
//选择使用的数据库
string str = "Server=.;Database=Test2;Trusted_Connection=True;MultipleActiveResultSets=true";
optionsBuilder.UseSqlServer(str);
} protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//加载当前程序集中所有实现了IEntityTypeConfiguration接口的类
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
}
}
步骤五:安装使用EF Core生成数据库的工具。通过命令行或NuGet安装Microsoft.EntityFrameworkCore.Tools包
注意:Microsoft.EntityFrameworkCore.Tools支持.net core3.1的最后一个版本是5.0.17
步骤六:生成数据库表格
在程序包管理器控制台中分别输入"Add-Migration 名称",命令行会自动在项目的Migration文件夹中生成C#代码,这个文件中包含用来创建数据库表的表名、列名、列数数据类型、主键等的代码。此时上面的代码还没有执行,然后输入命令行"Update-database"命令编译并且执行数据库迁移代码。如下:
此时数据库表已经创建完成。
三、增加数据
using (TestDbContext tdc = new TestDbContext())
{
//增加数据
Teacher t1 = new Teacher();
t1.Name = "张三";
t1.Age = 20;
t1.T_Number = "T001";
tdc.Teachers.Add(t1);
//执行这一步,数据才会被提交
tdc.SaveChanges();
}
也可以使用异步的方法进行数据的提交,如下:
static async Task Main(string[] args)
{
using (TestDbContext tdc = new TestDbContext())
{
//增加数据
Teacher t1 = new Teacher();
t1.Name = "李四";
t1.Age = 20;
t1.T_Number = "T001";
tdc.Teachers.Add(t1);
//执行这一步,数据才会被提交
await tdc.SaveChangesAsync();
} Console.WriteLine("ok");
}
四、查询数据
五、修改数据
六、删除数据
注意:如果调用SaveChangesAsync方法,那么就需要给改方法前加await并给将所处的同步方法改为异步方法,不然即使没有报错,也会无法删除数据的现象。
Asp.net core基础(一)Entity FrameworkCore的增删查改的更多相关文章
- asp.net mvc5 step by step(一)——CURD增删查改Demo
1. 新建一个项目:
- ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...
- ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 迁移数据 上一章节中我们配置了 ...
- ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 配置 上一章节我们简单介绍了下 Id ...
- ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 设置和初始化数据库 上一章节中我们已经设置和配置好了 EF ...
- ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity ...
- ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 数据库上下文 上一章节中我们了解了 Entity Framewo ...
- ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF SQLite 支持 上一章节我有提 ...
- ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 项目配置 ( Startup ) 前面几章节 ...
- 【目录】ASP.NET Core 基础教程
ASP.NET Core 基础教程 ASP.NET Core 基础教程 ASP.NET Core 简介 ASP.NET Core Windows 环境配置 ASP.NET Core macOS 环境配 ...
随机推荐
- C 简答题
1.从C语⾔执⾏效率⽅便,简述下C语⾔采取了哪些措施提⾼执⾏效率.(14分 or 20分)(年年考,⾮常重要) ①使⽤指针:有些程序⽤其他语⾔也可以实现,但C能够更有效地实现:有些程序⽆法⽤其它语⾔实 ...
- RockyLinux9编译安装MySQL8
Linux版本: Rocky Linux release 9.5 (Blue Onyx) 1.下载 打开MySQL-Community-Server官方下载页面:https://downloads.m ...
- C#中使用正则将字符串中某字符不区分大小写并按全字匹配替换为空
具体代码如下所示: //将字符串中desc不区分大小写并按全字匹配替换为空 var strText = "CreatDeSce DeSc,UserName AsC"; string ...
- Java SPI机制及实现
一.简介 SPI 的全称为 (Service Provider Interface),是 JDK 内置的一种服务提供发现机制.主要由工具类 java.util.ServiceLoader 提供相应的支 ...
- .Net Core WebAPI部署多服务器配置Nginx负载均衡
下载Nginx包: https://nginx.org/en/download.html 首先下载Nginx包 注意:下载路径必须为英文,不能到中文: 启动Nginx: 打开刚刚下载的Nginx包,然 ...
- [SDOI2016] 数字配对 题解
发现题目中描述的配对条件可以理解为:\(pc_i-pc_j=1\) 且 \(a_i\bmod a_j=0\),其中 \(pc_i\) 表示 \(a_i\) 的质因数个数. 自然想到以 \(pc\) 奇 ...
- 《基于NLP内容理解》出书
<基于NLP内容理解>出书初心: 1)情怀&梦想:记得自己高中的时候每次冲进我们县城的书店,都能看到书店中央摆放着白岩松老师的一本自传,当时的那种崇拜一直萦绕在自己的心里,想着自己 ...
- 借Processing语言及IDE做DOS批处理的事务( 批量修改文件夹或文件的名字 )
一直想用Processing语言做一些批处理的事务,因为其自带的IDE功能紧凑易用,极度轻量,又加上Java语言的生态极具友好,处理一些windows相关操作完全可行,简单快捷. 这次就是用它做[批量 ...
- DeepSeek 开源周回顾「GitHub 热点速览」
上周,DeepSeek 发布的开源项目用一个词形容就是:榨干性能!由于篇幅有限,这里仅列出项目名称和简介,感兴趣的同学可以前往 DeepSeek 的开源组织页面,深入探索每个项目的精彩之处! 第一天 ...
- 关于does not have a method xx to handle event "tap"我有话要说
前言> 我正在对接微信小程序订阅消息功能,看了官方文档觉得挺简单的.于是踩坑开始了 ###### 应该是这样简单的```wx.requestSubscribeMessage({ tmplIds: ...