更新:
这是一对多的方法
我将 ApplicationUser 类更改为以下内容:
public class ApplicationUser : IdentityUser
{
public int BuildingID { get; set; }
[ForeignKey("BuildingID")]
public Building building { get; set; }
}
然后我通过包管理器控制台添加了迁移:
add-migration identity-user-extention
迁移完成后,我编辑了生成的代码并删除了所有创建和删除表的代码。这背后的原因是它试图重新创建我已经生成的所有表。
public partial class identity-user-extention: Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "BuildingID",
table: "AspNetUsers",
nullable: false,
defaultValue: 0);
migrationBuilder.CreateIndex(
name: "IX_AspNetUsers_BuildingID",
table: "AspNetUsers",
column: "BuildingID");
migrationBuilder.AddForeignKey(
name: "FK_AspNetUsers_BUILDING_BuildingID",
table: "AspNetUsers",
column: "BuildingID",
principalTable: "BUILDING",
principalColumn: "BUILDING_ID",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_AspNetUsers_BUILDING_BuildingID",
table: "AspNetUsers");
migrationBuilder.DropIndex(
name: "IX_AspNetUsers_BuildingID",
table: "AspNetUsers");
migrationBuilder.DropColumn(
name: "BuildingID",
table: "AspNetUsers");
}
}
我保存了迁移,然后在包管理器控制台中运行了以下命令:
Update-Database
然后我能够成功创建一个帐户,并将 buildingID 作为外键(Buildings 表已经填充)