基于MVC架构的项目中的数据库数据表结构的更新

2023-11-07

1、在整个项目中对于数据库的操作及其处理;
①是通过在model类中添加数据模型i类之后去在controllers中执行增加新的构架和迁移文件的方式,最后通过这个迁移来更新数据库;
采用第一种方法的现在知道的好处就是因为表的定义是在程序中弄得再通过发布到数据库生成的,所以我们在对于model生成的controller中执行相关数据的查询的时候,也是采用的我们在model中的相关属性字段。img

但是目前的疑惑就是,因为数据表都是在程序中定义并经过统一的发布出去的,所以如果我们**后期需要对表格中的属性进行更新操作的话**。我们还是采用之前的方式直接将修改过的model去导出其新的架构并生成对应的视图和controller,再通过PM(程序包管理控制台)执行发布新的迁移架构并将其数据库更新,是否可以执行?因为这些更新或者产生的东西我们都存在,现在这里的更新操作特别是数据库是否可以完成更新操作?

解决方式:
是可以通过对修改过的models重新生成一个新的基架Students1Controller.cs,之后我们通过执行以下命令**生成一个对应的迁移文件studentChange.cs**。

Add-Migration studentChange

在20221019114947_studentChange.cs文件中我们可以看到以下的信息:

 protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropPrimaryKey(
                name: "PK_Student",
                table: "Student");

            migrationBuilder.AlterColumn<string>(
                name: "Sno",
                table: "Student",
                type: "nvarchar(20)",
                maxLength: 20,
                nullable: false,
                oldClrType: typeof(string),
                oldType: "nvarchar(450)")
                .OldAnnotation("Relational:ColumnOrder", 1);

            migrationBuilder.AddColumn<int>(
                name: "ID",
                table: "Student",
                type: "int",
                nullable: false,
                defaultValue: 0)
                .Annotation("SqlServer:Identity", "1, 1");

            migrationBuilder.AddPrimaryKey(
                name: "PK_Student",
                table: "Student",
                column: "ID");
        }

就可以很清楚的看出,它是在对原表进行修改。达到了我们的预期。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiEBSCjj-1668687426996)(D:\实践+学习\Web\photo\image-20221019200653522.png)]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于MVC架构的项目中的数据库数据表结构的更新 的相关文章

随机推荐

  • Nmap功能和参数

    一 Nmap常用功能 主要有以下四项 主机存活探测 端口探测并识别端口所提供服务 主机操作系统识别 漏洞扫描检测 二 端口状态 能够识别六种端口状态 1 open 开放的端口 2 closed 关闭的端口 3 filtered 被过滤的 4
  • 加密所有事物,将数据安全存储在任何地方

    Storing your data is easy Protecting it is hard Our personal information photos documents banking information and more i
  • Java学习笔记(四):内部类

    Java学习笔记 四 内部类 一 局部内部类 二 匿名内部类 三 成员内部类 四 静态内部类 内部类 在一个类的内部定义一个类 可以直接访问外部的全部资源 包括私有成员 一 局部内部类 定义在外部类的局部位置 比如方法 有类名 可以直接访问
  • 时序预测

    时序预测 MATLAB实现时间序列回归之交叉验证及损失函数 目录 时序预测 MATLAB实现时间序列回归之交叉验证及损失函数 基本介绍 程序设计 环境准备 交叉验证 损失函数 模型比较 参考资料 致谢 基本介绍 本文介绍MATLAB实现时间
  • 每次刷脸缴费时就可直接进行扣款结算

    人脸识别支付是一款基于面部识别系统的支付应用 支付时消费者只需要面对自助终端屏幕上的摄像头 系统会获取用户面部信息并将面部信息与支付宝账户关联 通过支付宝账户进行费用支付 整个交易过程十分便捷 首次刷脸支付 在刷脸页面进行面部识别 输入与支
  • 【Linux】进程信号 -- 信号保存与递达

    阻塞信号 信号相关概念 内核中的表示 sigset t 信号集操作函数 sigprocmask sigpending 小实验 观察pending表 信号的捕捉流程 sigaction 1 小实验 如果进程在处理2号信号 那我们继续发送2号信
  • 在VMware上安装Centos操作系统详细教程

    1 下载CentOS 64位镜像 下载CentOS 64位官网 https www centos org download 1 点击CentOS Linux DVD ISO 2 选择任意一个镜像下载 并保存 2 在VMware中创建虚拟机
  • 软件技术文档撰写要求

    作者 龚云卿 2006 5 30 1 针对性 文档编制以前应分清读者对象 按不同的类型 不同层次的读者 决定怎样适应他们的需要 对于面向管理人员和用户的文档 不应像开发文档 面向软件开发人员 那样过多地使用软件 的专业术语 难以避免使用的词
  • php数字取整

    ceil 进一法取整 floor 舍去法取整 round 对浮点数进行四舍五入说明 intval 对变数转成整数型态 echo ceil 4 3 5 echo floor 4 3 4 echo round 3 4 3 echo round
  • java.util.Objects.isNull vs object == null 之Objects类的介绍

    Java7引入了java util Objects类 Objects提供了很多工具类方法 其中包括isNull方法 Java8引入了isNull方法 那么java util Objects isNull 与 object null有何区别
  • Android作业中遇到的各种问题

    1 如何设置Edit View不可输入不可编辑不可点击 eidtex为要设置的文本框的id eidtext setEnabled false 去掉点击时编辑框下面横线 eidtext setFocusable false 不可编辑 eidt
  • antd vue时间选择器(年选择器)

    antd vue时间选择器 年选择器 最近项目中用到了antd vue 项目中的版本是1 5 2版本 在做日期选择器时发现只有日 周 月份选择器 独独缺少年份选择器 如果你的项目也是怕升级对整体影响太多 不妨试试下面这种方式来达到年份选择效
  • 用递归求和:1+2+3+4+....n.

    1 具体代码实现 public class Example2 public static void main String args int n 100 int value add n System out println value pu
  • Windows下 VS2015编译RocksDB

    VS2015编译RocksDB RocksDB 是一个来自 facebook 的可嵌入式的支持持久化的 key value 存储系统 也可作为 C S 模式下的存储数据库 但主要目的还是嵌入式 RocksDB 基于 LevelDB 构建 1
  • python在定位元素中加入参数化

    我们在web自动化时 需要用到上个定位的值 来定位下个定位的方法 这个时候就需要用参数传递了 解决如下 我们如果要想获取这个页面的全部名字需要用 driver find elements的定位 不要用driver find element
  • 单片机新手指导2:STM32单片机学习步骤---偏编程方向

    学习步骤 编程方向 写在前面 本文为笔者从单片机小白到略懂到能完成单片机大项目过程中的身心体会 做下总结供后来者参考 第零步 1 准备好一个爱学习 痴迷技术 不怕秃头 不怕熬夜 追求上进的自己 2 调研并选一套适合自己的STM32学习板 不
  • 关于windows安装wsl,出现WslRegisterDistribution failed with error: 0x8007019e The Windows Subsystem错误的解决方案

    前倾概要 在Microsoft store安装ubuntu 18 04成功启动后 出现了该错误并提示按任意键退出 如下图所示 由于我忘了截图 所以只能去别的博主那盗图 解决方案 首先需要安装windows的子系统支持 步骤 1 win x
  • Qlistwidget获取当前选项的文本的方法

    PYQT5 Qlistwidget获取当前选项文本的方法 创建一个Qlistwidget 获取当前的选择的item currentItem self listWidget types currentItem print currentIte
  • 提升学生群体中的STEAM教育核心素养

    STEAM教育源自STEM教育 是当今国际探索21世纪人才培养的一种教育理念与举措 美国首倡STEM教育并将其作为提升国家竞争力的战略之一 旨在加强科学 Science 技术 Technology 工程 Engineering 与数学 Ma
  • 基于MVC架构的项目中的数据库数据表结构的更新

    1 在整个项目中对于数据库的操作及其处理 是通过在model类中添加数据模型i类之后去在controllers中执行增加新的构架和迁移文件的方式 最后通过这个迁移来更新数据库 采用第一种方法的现在知道的好处就是因为表的定义是在程序中弄得再通