rider下ef core迁移

新建数据库

create database mockstu

新建web项目

安装Microsoft.EntityFrameworkCore.SqlServer
在这里插入图片描述

设置连接字符串

在这里插入图片描述
新建model

using MockStuWeb.Models.EnumTypes;
using System.ComponentModel.DataAnnotations;

namespace MockStuWeb.Models
{
    /// <summary>
    /// 学生类
    /// </summary>
    public class Student
    {
        /// <summary>
        /// 唯一标识
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        [Display(Name = "名字")]
        [Required(ErrorMessage = "请输入名字"), MaxLength(50, ErrorMessage = "名字的长度不能超过50个字符")]
        public string? Name { get; set; }

        /// <summary>
        /// 主修课程
        /// </summary>
        [Required(ErrorMessage ="请选择主修课程")]
        [Display(Name = "主修课程")]
        public MajorEnum? Major { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        [Display(Name = "邮箱")]
        [RegularExpression(@"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$", ErrorMessage = "邮箱的格式不正确")]
        [Required(ErrorMessage = "请输入邮箱地址,它不能为空")]
        public string? Email { get; set; }
    }
}

新建dbContenxt

using Microsoft.EntityFrameworkCore;
using MockStuWeb.Models;

namespace MockStuWeb.Infrastructure;

public class AppDbContext:DbContext
{
    /// <summary>
    /// 构造函数注入
    /// </summary>
    /// <param name="options"></param>
    public AppDbContext(DbContextOptions<AppDbContext> options):base(options)
    {
    }
    
    public DbSet<Student> Students{get;set;}

}

program.cs中使用

builder.Services.AddDbContextPool<AppDbContext>(options =>
{
    options.UseSqlServer(configuration.GetConnectionString("MockStudentDBConnection"));
});

安装dotnet-ef

dotnet tool install --global dotnet-ef

在这里插入图片描述

创建迁移

cd .\MockStuWeb\
dotnet ef migrations add InitialCreate --namespace .\MockStuWeb.csproj --output-dir Migrations

在这里插入图片描述
安装Microsoft.EntityFrameworkCore.Tools,顺便升级一下sql server包
在这里插入图片描述
在这里插入图片描述
需要改代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更新到数据库中

dotnet ef database update InitialCreate

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启用种子数据

Infrastructure下新建ModelBuilderExtensions

using Microsoft.EntityFrameworkCore;
using MockStuWeb.Models;
using MockStuWeb.Models.EnumTypes;

namespace MockStuWeb.Infrastructure;

public static class ModelBuilderExtensions
{
    public static void Seed(this ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Student>().HasData(
            new Student
            {
                Id = 2,
                Name = "张三",
                Major = MajorEnum.ComputerScience,
                Email = "zhangsan@52abp.com"
            }
        );
    }
}

AppDbContext添加如下代码

/// <summary>
/// 模型创建的时候
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Seed();
}

添加迁移记录并更新

dotnet ef migrations add AlterStudentsSeedData --namespace .\MockStuWeb.csproj --output-dir Migrations
dotnet ef database update AlterStudentsSeedData

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进行回退

dotnet ef migrations list
dotnet ef migrations remove -f

只能手动修改一下代码
建立表格的代码注释掉
在这里插入图片描述
在这里插入图片描述
单条数据也可以这么写
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

进行回退

dotnet ef migrations list
dotnet ef migrations remove -f
dotnet ef database update InitialCreate

在这里插入图片描述

在这里插入图片描述
把这次迁移的文件删除即可
在这里插入图片描述

参考

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百度文心一言(ERNIE bot)API接入Android应用

百度文心一言&#xff08;ERNIE bot&#xff09;API接入Android应用实践 - 拾一贰叁 - 博客园 (cnblogs.com) Preface: 现在生成式AI越来越强大了&#xff0c;想在android上实现一个对话助手的功能&#xff0c;大概摸索了一下接入百度文心一言API的方法。 与AI助手交换信息的…

分布式搜索引擎-DSL查询文档

分布式搜索引擎-DSL查询文档 文章目录 分布式搜索引擎-DSL查询文档1、DSL Query的分类1.1、全文检索查询1.2、精确查询1.3、地理查询1.4、复合查询1.5、Function Score Query1.6、复合查询Boolean Query 2、搜索结果处理2.1、排序2.2、分页2.3、深度分页2.4、高亮 1、DSL Query…

鸿蒙OpenHarmony开发实战:【MiniCanvas】

介绍 基于OpenHarmony的Cavas组件封装了一版极简操作的MiniCanvas&#xff0c;屏蔽了原有Canvas内部复杂的调用流程&#xff0c;支持一个API就可以实现相应的绘制能力&#xff0c;该库还在继续完善中&#xff0c;也欢迎PR。 使用说明 添加MiniCanvas依赖 在项目entry目录执行…

混合云构建-使用 Azure ExpressRoute 建立从本地到 Azure 虚拟网络的专用连接

如果有大量业务数据需要在本地数据中心和azure私有网络进行传输&#xff0c;同时保证带宽和时延的情况需要使用 ExpressRoute 设置从本地网络到 Azure 中的虚拟网络的专用连接。以下是实操步骤供参考&#xff1a; 一、创建和预配 ExpressRoute 线路 登录 Azure 门户。 在页面…

为什么独享ip会更高效?

随着互联网的蓬勃发展&#xff0c;代理IP因其特性&#xff0c;也备受关注&#xff0c;代理IP又有分共享代理IP和独享代理IP&#xff0c;但&#xff0c;无论是在数据采集方面&#xff0c;还是在其他业务场景上&#xff0c;独享代理IP似乎会更受用户欢迎一点&#xff0c;这到底是…

【Flask】Flask数据迁移操作

Flask数据迁移操作 前提条件 安装第三方包&#xff1a; # ORM pip install flask-sqlalchemy # 数据迁移 pip install flask-migrate # MySQL驱动 pip install pymysql # 安装失败&#xff0c;指定如下镜像源即可 # pip install flask-sqlalchemy https://pypi.tuna.tsinghu…

Typecho如何去掉/隐藏index.php

Typecho后台设置永久链接后&#xff0c;会在域名后加上index.php&#xff0c;很多人都接受不了。例如如下网址&#xff1a;https://www.jichun29.cn/index.php/archives/37/&#xff0c;但我们希望最终的形式是这样&#xff1a;https://www.jichun29.cn/archives/37.html。那么…

Lua热更新(Lua)

-- [[]] print 下载Lua For Windows Sublime Text&#xff08;仅用于演示&#xff0c;实际项目使用VsCode&#xff09; CtrlB运行 语法基础 基础类型&#xff1a;nil number string boolean 运算符&#xff1a;and-or-not ~ ^ if-then-end-elseif-else while-do-…

Kotlin零基础入门到进阶实战

教程介绍 Kotlin现在是Google官方认定Android一级开发语言&#xff0c;与Java100%互通&#xff0c;并具备诸多Java尚不支持的新特性&#xff0c;每个Android程序员必备的Kotlin课程&#xff0c;每个Java程序员都需要了解的Kotlin&#xff0c;掌握kotlin可以开发Web前端、Web后…

【机器学习300问】46、什么是ROC曲线?

一、二分类器的常用评估指标有哪些&#xff1f; 二分类器是机器学习领域中最常见的也是应用最广泛的分类器。评价二分类器的指标也很多&#xff0c;下面列出几个我之前重点写文章介绍过的指标。 &#xff08;1&#xff09;准确率&#xff08;Accuracy&#xff09; 定义为分类正…

VSGitHub项目联动(上传和克隆),创建你的第一个仓库,小白配置

目录&#xff1a; 前言一&#xff0c;基本说明1.1名词概念1.2必配条件 二&#xff0c;配置方法2.1本地生成密钥2.2云端代码托管平台SSH配置添加&#xff08;GitHub&#xff09;2.3VS项目配置 三&#xff0c;参考四&#xff0c;一些讨论 前言 &#x1f308;在编写VS代码项目时&a…

详细安装步骤:vue.js 三种方式安装(vue-cli)

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09;是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。 三种 Vue.js 的安装方法&…

Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准

前言 Git Commit 是开发的日常操作, 一个优秀的 Commit Message 不仅有助于他人 Review, 还可以有效的输出 CHANGELOG, 对项目的管理实际至关重要, 但是实际工作中却常常被大家忽略&#xff0c;希望通过本文&#xff0c;能够帮助大家规范 Git Commit&#xff0c;并且展示相关 …

03_Mybatis

文章目录 入门案例JDBCMybatis MybatisMybatis介绍Mybatis的环境搭建动态代理增删改查示例事务 Mybatis的配置propertiessettingstypeAliasesenvironmentsmappers 输入映射一个参数多个参数按位置传值对象传值使用Map进行传值 #{}和${}的区别输出映射一个参数多个参数单个对象多…

笔记1-Hadoop之HDFS

Hadoop 开源版本的HADOOP和其他框架的对应关系很混乱&#xff0c;要注意。 Hadoop四大模块&#xff1a;Common HDFS MapReduce Yarn Hadoop能对大量的数据进行分布式处理&#xff0c;可以轻松的从一台服务器扩展到千台服务器&#xff0c;并且 每一台服务器都能进行本地计算和…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图&#xff0c;build的重要过程中会调用_element!.markNeedsBuild();&#xff0c;而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中&#xff0c;BuildOwner负责管理构建…

【ai技术】(4):在树莓派上,使用qwen0.5b大模型+chatgptweb,搭建本地大模型聊天环境,速度飞快,非常不错!

1&#xff0c;视频地址 https://www.bilibili.com/video/BV1VK421i7CZ/ 2&#xff0c;下载镜像 raspberry-pi-os-64-bit https://blog.csdn.net/freewebsys/article/details/136921703 项目地址&#xff1a; https://www.raspberrypi.com/software/operating-systems/#rasp…

【JAVA重要知识 | 第九篇】ConCurrentHashMap源码分析

文章目录 9.ConCurrentHashMap源码分析9.1 ConCurrentHashMap 1.79.1.1存储结构9.1.2初始化9.1.3put流程&#xff08;1&#xff09;判断是否要put(key,value)流程&#xff08;2&#xff09;put(key,value)&#xff08;3&#xff09;自旋获取hash位置的HashEntry 9.1.4 rehash扩…

【力扣hot100】1. 两数之和 49.字母异位词分组 128. 最长连续序列

目录 1. 两数之和题目描述做题思路参考代码 49.字母异位词分组题目描述做题思路参考代码 128. 最长连续序列题目描述做题思路参考代码 1. 两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数…

子网掩码,网段,网关

IP地址、子网掩码、网段、网关【网络常识 2】_哔哩哔哩_bilibili 网关&#xff1a; 什么时候需要用到网关&#xff1a; 若目标IP在同一网段则可以直接通信不需要经过网关&#xff0c;否则需要。 怎么判断对方的ip是否与我在同一网段呢&#xff1f; 判断网络号是否相同。 电…