.net6 web api使用EF Core,根据model类自动生成表

news2025/7/19 9:39:22

1.安装EF Core和mysql数据库的nuget包
Microsoft.EntityFrameworkCore
Pomelo.EntityFrameworkCore.MySql
在这里插入图片描述
2.创建models文件夹,在文件夹下创建实体类
在这里插入图片描述

  public class Users
    {
        public int Id { get; set; }

        [Column(TypeName = "varchar(200)"), Required]
        public string Name { get; set; }

        [Column(TypeName = "varchar(200)")]
        public string Email { get; set; }

        [Column(TypeName = "varchar(200)")]
        public string age { get; set; }
    }

3.创建数据库上下文操作类MyDbContext继承DbContext
在这里插入图片描述

namespace EfCore
{
    public class MyDbContext: DbContext
    {
        //添加Users实体类
        public DbSet<Users> Users { get; set; }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //modelBuilder.Entity<MyModel>()
            //    .HasKey(x => x.Id);

        //    modelBuilder.Entity<Users>()
        //        .Property(e => e.Email)
        //        .IsRequired()
        //        .HasMaxLength(50);

            modelBuilder.ApplyConfigurationsFromAssembly(typeof(MyDbContext).Assembly);
        }

        //构造函数
        public MyDbContext(DbContextOptions<MyDbContext> option) : base(option)
        {
            // 如果数据库表不存在则创建
            Database.EnsureCreated();

            // 执行自动迁移以将数据库与实体类定义同步
            Database.Migrate();
        }

    }
}

4.在appsettings.json文件添加数据库连接字符串

  "ConnectionStrings": {
    "DbConnectionString": " Data Source=localhost;Database=efcore;AllowLoadLocalInfile=true;User ID=root;Password=root;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;"
  }

在这里插入图片描述
5.在Program.cs类实现依赖注入
在这里插入图片描述
6.控制器中使用,添加一个名称为UsersController的控制器
在这里插入图片描述

 [Route("api/[controller]")]
    [ApiController]
    public class UsersController : ControllerBase
    {
        private readonly MyDbContext _context;

        public UsersController(MyDbContext context)
        {
            _context = context;
        }
        [HttpGet("user")]
        public ActionResult<IEnumerable<Users>> Get()
        {
            return _context.Users.ToList();
        }
    }

7.启动项目调用该api接口,发现数据库表成功创建,实现自动迁移
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/396423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Streaming systems 第三章中文

Chapter 3. Watermarks GIthub链接&#xff0c;欢迎志同道合的小伙伴一起翻译 到目前为止&#xff0c;我们一直从pipeline设计者或数据科学家的角度来研究流处理。第二章介绍了水印&#xff0c;对事件时间处理中发生的位置和处理时间中结果何时输出的基本问题做了一部分回答。…

制造企业数字化工厂建设步骤的建议

随着工业4.0、中国制造2025的深度推进&#xff0c;越来越多的制造企业开始迈入智能制造的领域&#xff0c;那数字工厂要从何入手呢&#xff1f; 数字工厂规划的核心&#xff0c;也正是信息域和物理域这两个维度&#xff0c;那就从这两个维度来进行分析&#xff0c;看如何进行数…

MySQL架构篇

一、进阶学习环境说明 1.1 MySQL服务器环境 Linux虚拟机&#xff1a;CentOS 7 MySQL&#xff1a;MySQL5.7.30 在Linux服务器中安装MySQL&#xff1a; ps.如果有自己的云服务器&#xff0c;可忽略前两步&#xff0c;直接进行第三步 1.2 服务器日志文件说明 MySQL是通过文件系统对…

论文投稿指南——中文核心期刊推荐(经济管理)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

什么蓝牙耳机好用戴着舒适?佩戴舒适音质好的无线蓝牙耳机

戴耳机时间长会导致耳朵痛&#xff0c;时间长了对我们的听力还有影响。一款佩戴舒适的耳机更贴合耳朵的设计&#xff0c;能够带来更加优质的聆听体验&#xff0c;下面甄选出了几款佩戴比较舒适的耳机推荐&#xff0c;音质还非常出众。 一、南卡小音舱蓝牙耳机 单耳重量&#x…

Protobuf 使用和原理

文章目录1. protobuf 简介1.1. 发展背景1.2. 优缺点1.2.1. 优点1.2.2. 缺点2. 使用2.1. 消息类型2.1.1. 字段限制2.1.2. 数据类型2.1.3. 分配字段编号2.1.4. 保留字段2.1.5. 默认字段规则2.1.6. 枚举2.2. Protobuf 工作流程2.2.1 编译proto文件2.3. 使用建议3. 原理3.1. 编码格…

抓包工具fiddler详细使用教程

各位做测试的同学想必对抓包工具fiddler并不陌生&#xff0c;但是很多同学可能没有总结过它的用法&#xff0c;下面我总结了fiddler一些常用的用法。 Web端抓包配置 打开Fiddler&#xff0c;Tools -> Fiddler Options -> HTTPS 配置完后记得要重启Fiddler 选中Decrpt …

第2章 线程安全与共享资源竞争

第2章 线程安全与共享资源竞争 2.1 synchronized同步介绍 synchronized要解决的是共享资源冲突的问题。当共享资源被任务使用时&#xff0c;要对资源提前加锁。所有任务都采用抢占模式&#xff0c;即某个任务会抢先对共享资源加上第一把锁。如果这是一个排他锁&#xff0c;…

汇编指令学习(LOOP)

一、xor异或操作&#xff0c;相同为0&#xff0c;不同为1xor eax,eaxeax异或eax&#xff0c;相同为0&#xff0c;并把结果存放到eax&#xff0c;简单说该语句就是想eax寄存器清零。二、ECX&#xff0c;计数器mov ecx,0x3将ecx寄存器设置为3三、DEC减一操作dec ecxecx寄存器的值…

扬帆优配|昔日白马股濒临退市,却6天5涨停!ST股突然集体爆发

尽管再度重申“公司股票将被停止上市”&#xff0c;但3月8日早间&#xff0c;*ST辅仁股价仍是在开盘后快速封住涨停板。这已是该公司近6个买卖日来&#xff0c;第5次呈现涨停。 无独有偶&#xff0c;8日早间ST东瀛也在此前多次涨停后&#xff0c;再度呈现近4%的涨幅。而就在7日…

图像的读取与保存

图像是由一个个像素点组成&#xff0c;像素点就是颜色点&#xff0c;而颜色最简单的方式就是用RGB或RGBA表示图像保存图像将像素信息按照 一定格式&#xff0c;一定顺序&#xff08;即编码&#xff09; 存在硬盘上的 二进制文件 中保存图像需要以下必要信息&#xff1a;1. 文件…

ChatGPT的N种用法(持续更新中。。。)

目录前言一、语法更正二、文本翻译三、语言转换3-1、Python-->JAVA四、代码解释-1五、代码解释-2六、修复代码错误六、作为百科全书七、信息提取七、好友聊天八、创意生成器8-1、VR和密室结合8-2、再结合AR九、采访问题9-1、采访问题清单9-2、采访问题清单并给出相应答案十、…

优思学院|六西格玛管理的核心理念是什么?

六西格玛管理是一种基于数据分析的质量管理方法&#xff0c;旨在通过降低过程的变异性来达到质量稳定和优化的目的。该方法以希腊字母“σ”为名&#xff0c;代表标准差&#xff0c;是衡量过程变异性的重要指标。 六西格玛管理的核心理念是“以客户为中心、以数据为基础、追求…

【JAVA程序设计】【C00114】基于SSM+微信小程序的食堂订餐点餐管理系统——有文档

基于微信小程序的食堂订餐点餐管理系统项目简介项目获取开发环境项目技术运行截图项目简介 基于ssm框架管理前端使用vue&#xff0c;用户使用微信小程序的食堂订餐点餐小程序共分为三个角色&#xff1a;系统管理员、商家、用户 管理员角色包含以下功能&#xff1a; 首页展示、…

提升数字品牌的5个技巧

“品牌”或“品牌推广”的概念通常用于营销。因为建立您的企业品牌对于产品来说极其重要&#xff0c;品牌代表了您与客户互动的身份和声音。今天&#xff0c;让我们来看看在数字领域提升品牌的一些有用的技巧。如何在数字领域提升您的品牌&#xff1f;在了解这些技巧之前&#…

Android特别的数据结构(二)ArrayMap源码解析

1. 数据结构 public final class ArrayMap<K,V> implements Map<K,V> 由两个数组组成&#xff0c;一个int[] mHashes用来存放Key的hash值&#xff0c;一个Object[] mArrays用来连续存放成对的Key和ValuemHashes数组按非严格升序排列初始默认容量为0减容&#xff…

Hbase 映射到Hive

目录 一、环境配置修改 关闭掉hbase&#xff0c;zookeeper和hive服务 进入hive312/conf 修改hive-site.xml配置&#xff0c; 在代码最后添加配置 将hbase235的jar包全部拷贝到hive312的lib目录&#xff0c;并且所有的是否覆盖信息全部输入n&#xff0c;不覆盖 查看hive312下…

详解抓包原理以及抓包工具whistle的用法

什么是抓包? 分析网络问题业务分析分析网络信息流通量网络大数据金融风险控制探测企图入侵网络的攻击探测由内部和外部的用户滥用网络资源探测网络入侵后的影响监测链接互联网宽频流量监测网络使用流量(包括内部用户&#xff0c;外部用户和系统)监测互联网和用户电脑的安全状…

CI流水线的理解

一、概念 单元测试&#xff1a;针对软件的基本单元&#xff08;如&#xff1a;类、函数&#xff09;所做的测试。 集成测试&#xff1a;将软件代码单元集成起来后&#xff0c;以组件、模块和子系统为单位进行的测试&#xff0c;主要测试接口间的交互关系。也称组件测试&#xf…

嵌入式Linux从入门到精通之第十五节:嵌入式系统简介

嵌入式系统的层级结构如下图所示: 开发环境 这里以三星s5pv210为开发环境: 系统资源 s5pv210是三星公司推出的32位RISC微处理器,其CPU采用的是ARM Cortex-A8内核,基于ARMv7架构 丰富的片内资源,为手持设备和其它移动领域应用,提供了低价格、低功耗、高性能的微处理器解…