1、在整个项目中对于数据库的操作及其处理;
①是通过在model类中添加数据模型i类之后去在controllers中执行增加新的构架和迁移文件的方式,最后通过这个迁移来更新数据库;
采用第一种方法的现在知道的好处就是因为表的定义是在程序中弄得再通过发布到数据库生成的,所以我们在对于model生成的controller中执行相关数据的查询的时候,也是采用的我们在model中的相关属性字段。
但是目前的疑惑就是,因为数据表都是在程序中定义并经过统一的发布出去的,所以如果我们**后期需要对表格中的属性进行更新操作的话**。我们还是采用之前的方式直接将修改过的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");
}
就可以很清楚的看出,它是在对原表进行修改。达到了我们的预期。