标签:程序 framework update err 程序包管理 数据 nbu override time
在项目中使用Entity Framework的Code First模式,进行数据迁移时,Migration文件夹中存放的是每一次Entity的修改如何同步到数据的操作方法,每个文件中都只有Up和Down这两个方法。例如第一次数据迁移时,会创建数据表,在程序包管理控制台中输入命令:add-migration migrationname,会生成一个migrationname.cs的文件,在对应的Migration类文件的代码如下:
public partial class Initial : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Posts", columns: table => new { Id = table.Column<int>(nullable: false) .Annotation("Sqlite:Autoincrement", true), Title = table.Column<string>(nullable: true), Author = table.Column<string>(nullable: true), Body = table.Column<string>(nullable: true), LastModified = table.Column<DateTime>(nullable: false) }, constraints: table => { table.PrimaryKey("PK_Posts", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Posts"); } }
再在程序包管理控制台中输入命令:update-database,即可将Entity的设计同步到数据库中。
当后期对Entity进行了修改时,再次运行 add-migration migrationname 和update-database这两个命令,即可再生成一个同步文件,并将修改更新到数据库中。
注意两个问题:
1、不能随意删除Migration文件夹内的同步文件,否则数据同步会失败,问题解决很麻烦。
2、每次add-Migration时取的文件名不能重名
标签:程序 framework update err 程序包管理 数据 nbu override time
原文地址:https://www.cnblogs.com/chenh/p/10295794.html