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.mzph.cn/news/766339.shtml

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

相关文章

C程序编译、链接与项目构建

C程序编译、链接与项目构建 摘要C编译环境静、动态库介绍gcc与g和程序编译、链接Visual Studio创建和链接库动态库的显示调用 Make介绍安装使用 CMake介绍安装使用构建方式内部构建外部构建构建使用静/动态库常用[系统]变量常用指令CMake模块 Make与CMake的联系与区别 摘要 本…

国内AI领域的新星:Kimi与GPT的较量,谁主沉浮?

近期&#xff0c;国产大型人工智能模型Kimi频繁成为众多行业领袖讨论的焦点。这些来自不同领域的专家和领袖们&#xff0c;似乎都在对Kimi的性能和能力给予高度评价。在这两年国产AI模型的快速发展中&#xff0c;尽管市场上涌现出了许多新面孔&#xff0c;但真正能够在技术和应…

LeetCode-热题100:79. 单词搜索

题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相…

Day45:WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件

目录 PHP-MYSQL-二次注入-DEMO&74CMS DEMO-用户注册登录修改密码 CMS-74CMS个人中心简历功能 PHP-MYSQL-堆叠注入-DEMO&CTF强网 Demo 2019强网杯-随便注&#xff08;CTF题型&#xff09; PHP-MYSQL-带外注入-DEMO&DNSLOG(让服务器主动把数据交出去) 知识点&…

Ps:色彩平衡

色彩平衡 Color Balance命令可改变阴影、中间调、高光中的颜色平衡&#xff0c;从而改善图像的整体色彩表现或为图像创造特定的氛围。 Ps菜单&#xff1a;图像/调整/色彩平衡 Adjustments/Color Balance 快捷键&#xff1a;Ctrl B Ps菜单&#xff1a;图层/新建调整图层/色彩平…

Oracle Data Guard部署

Oracle的主备DG搭建 1. 修改主机名,同步时间 主库IP&#xff1a;192.168.100.137 备库IP&#xff1a;192.168.100.138配置主机名(主库) Hostname zygjpdb vim /etc/hosts 192.168.100.137 zygjpdb 192.168.100.138 zygjsdbvim /etc/sysconfig/network HOSTNAMEzygjpdb ------…

文件上传二—WEB攻防-PHP应用文件上传中间件CVE解析第三方编辑器已知CMS漏洞

演示案例&#xff1a; PHP-中间件-上传相关-Apache&NginxPHP-编辑器-上传相关-第三方处理引用PHP-CMS源码-上传相关-已知识别到利用 #PHP-中间件-上传相关-Apache&Nginx 复现漏洞环境&#xff1a;vulhub &#xff08;部署搭建看打包视频&#xff09; 由于PHP搭建常用中…

二叉树:递归算法的理解和运用

上一期中&#xff0c;我们了解到了堆&#xff0c;堆的结构也可以叫做二叉树的顺序结构&#xff0c;今天我们一起来看看二叉树的链式结构&#xff0c;我们还要学习有关于二叉树递归的书写。 首先&#xff0c;这是一个二叉树&#xff0c;但是对于普通的二叉树来说&#xff0c;增…

【Linux】详谈命令行参数环境变量

目录 一、浅谈命令行参数 二、环境变量 2.1环境变量的内涵以及理解 2.2PATH环境变量&#xff1a; 2.3输入程序名就能运行我们的程序 2.4系统中的环境变量 2.5导出环境变量 三、main函数的第三个参数 3.1获得环境变量的三种方法 四、本地变量 一、浅谈命令行参数 我们的m…

用自己的想法模拟实现库函数(2)完结篇

哈喽&#xff0c;小伙伴们&#xff0c;我们又见面了&#xff0c;上次讲完strlen函数的模拟实现后&#xff0c;发现还比较受大家欢迎&#xff0c;因此&#xff0c;本次给大家带来模拟函数的完结篇。温馨提示&#xff1a;本篇文章将会涉及到可能还未学到的实用性较高的库函数哟。…

Leetcode刷题笔记——动态规划之子序列问题篇

Leetcode刷题笔记——动态规划之子序列问题篇 一、回文 第一题&#xff1a;回文子串 Leetcode647. 回文子串&#xff1a;中等题 &#xff08;详情点击链接见原题&#xff09; 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着…

案例实践 | 基于长安链的煤质检测智慧实验室

案例名称-煤质检测智慧实验室 ■ 建设单位 国能数智科技开发&#xff08;北京&#xff09;有限公司 ■ 用户群体 煤炭生产单位、电力单位、化工单位等产业链上下游单位 ■ 应用成效 化验效率提升50%&#xff0c;出验时间缩短40%&#xff0c;提高化验数据市场公信力 案例…

数据降维 | Matlab实现POD本征正交分解数据降维模型

数据降维 | Matlab实现POD本征正交分解数据降维模型 目录 数据降维 | Matlab实现POD本征正交分解数据降维模型基本介绍模型描述程序设计基本介绍 1.Matlab实现POD本征正交分解数据降维模型(完整源码和数据); 2.运行环境matlab2023; 3.POD降维,POD分解(Proper Orthogonal D…

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-…

只有IP地址怎么实现HTTPS访问?

只有IP地址也可以实现HTTPS访问。虽然大部分SSL证书通常是针对域名发放&#xff0c;但也存在专门针对IP地址发放的SSL证书&#xff0c;这类证书允许服务器通过HTTPS协议为其公网IP地址提供安全的Web服务。当服务器配置了基于IP地址的SSL证书后&#xff0c;用户可以通过“https:…

第十届蓝桥杯大赛个人赛省赛(软件类)真题- CC++ 研究生组-字串数字

3725573269 #include<iostream> #include<map> #include<string> using namespace std; int main(){map<char, int> mp;string s "LANQIAO";long long ans 0, power 1;//7位数的26进制可能会超过int范围for(int i 1; i < 26; i){mp.…

深度学习(过拟合 欠拟合)

过拟合&#xff1a; 深度学习模型由于其复杂性&#xff0c;往往容易出现过拟合的问题。以下是一些深度学习中常见的过拟合原因和解决方法&#xff1a; 1. 数据量不足&#xff1a;深度学习模型通常需要大量的数据来进行训练&#xff0c;如果数据量不足&#xff0c;模型容易过度…

vue3怎么使用reactive赋值

使用ref赋值&#xff1a; const list ref([]) const getList async () > {const res await axios.get(/list)list.value res.data } 如何使用reactive来替换呢&#xff1f; //const list ref([]) const list reactive([]) const getList async () > {const res…

NLP 笔记:LDA(训练篇)

1 前言&#xff1a;吉布斯采样 吉布斯采样的基本思想是&#xff0c;通过迭代的方式&#xff0c;逐个维度地更新所有变量的状态 1.1 举例 收拾东西 假设我们现在有一个很乱的屋子&#xff0c;我们不知道东西应该放在哪里&#xff08;绝对位置&#xff09;&#xff0c;但知道哪…

iOS模拟器 Unable to boot the Simulator —— Ficow笔记

本文首发于 Ficow Shen’s Blog&#xff0c;原文地址&#xff1a; iOS模拟器 Unable to boot the Simulator —— Ficow笔记。 内容概览 前言终结模拟器进程命令行改权限清除模拟器缓存总结 前言 iOS模拟器和Xcode一样不靠谱&#xff0c;问题也不少。&#x1f602; 那就有病治…