一、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的增删查改的更多相关文章

  1. asp.net mvc5 step by step(一)——CURD增删查改Demo

    1.  新建一个项目:

  2. ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...

  3. ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 迁移数据 上一章节中我们配置了 ...

  4. ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 配置 上一章节我们简单介绍了下 Id ...

  5. ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 设置和初始化数据库 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 设置和初始化数据库 上一章节中我们已经设置和配置好了 EF ...

  6. ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 EF 框架服务 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF 框架服务 上一章节中我们了解了 Entity ...

  7. ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 数据库上下文 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 数据库上下文 上一章节中我们了解了 Entity Framewo ...

  8. ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF SQLite 支持 上一章节我有提 ...

  9. ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 项目配置 ( Startup ) - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 项目配置 ( Startup ) 前面几章节 ...

  10. 【目录】ASP.NET Core 基础教程

    ASP.NET Core 基础教程 ASP.NET Core 基础教程 ASP.NET Core 简介 ASP.NET Core Windows 环境配置 ASP.NET Core macOS 环境配 ...

随机推荐

  1. 《HelloGitHub》第 106 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...

  2. nacos(二):原生java调用配置与服务实例

    本文主要介绍原生java连接nacos,操作nacos的共享配置与服务实例. 1.引入依赖 <dependencies> <dependency> <groupId> ...

  3. LeetCode 第3题:无重复字符的最长子串

    LeetCode 第3题:无重复字符的最长子串 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度. 难度 中等 题目链接 https://leetcode.cn/proble ...

  4. last和history 查看登录和操作命令

    last命令 last命令:用于显示用户最近登录信息.单独执行last命令,它会读取/var/log/wtmp的文件,并把该文件的内容记录的登入系统的用户名单全部显示出来. 语法 last(选项)(参 ...

  5. Python实现URL自动转二维码的高效方法

    Python实现URL自动转二维码的高效方法 安装包依赖 pip install qrcode pip install pillow 程序 import qrcode data = "htt ...

  6. Typecho 如何开启外链转内链

    把博客中的外部链接转换为网站内链,据说有利于搜索引擎收录.该插件主要由 benzBrake 大佬 编写,同时支持转换文章和评论中的链接. 上传插件 下载 Master Branch Code 后上传到 ...

  7. Linux - centos6忘记root密码怎么办?

    Linux的root密码修改不像Windows的密码修改找回,Windows的登录密码忘记需要介入工具进行解决.CentOS6和CentOS7的密码方法也是不一样的,具体如下 1.开机按esc   2 ...

  8. 借用【.bat 批处理】实现同时播放多个视频 · 以PotPlayer播放器为例

    突然有这样的需求:同时打开一个文件夹下的多个视频播放任务.如何来实现呢? 理所当然的是想到Potplayer本身可以开多个进程,也就是多开窗口播放,但是经过实验,发现在资源管理器中选取多个视频源并不能 ...

  9. 值得推荐的IT公司名单(成都篇)

    成都,作为新一线城市中的科技强市,拥有众多优秀的 IT 公司,为广大 IT 从业者提供了丰富的就业机会和良好的职业发展环境.以下是一些值得推荐的 IT 公司(排名不分先后): 一.互联网巨头在成都 1 ...

  10. CRYPTO-DSA

    CRYPTO-DSA 参考某位大佬的博客和nss的一些题目,这两天的DSA题目 DSA数字签名 | DexterJie'Blog [NCTF 2021]dsa task.py from Crypto. ...