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

11 篇文章 0 订阅
9 篇文章 0 订阅

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)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值