【发布时间】:2017-05-22 08:25:41
【问题描述】:
在 3 个模型的 2 个属性中添加 [required] 注释并运行 add-migration 后,运行 update-database 时出现以下错误。
ALTER TABLE ALTER COLUMN UserId failed because one or more objects access this column.
The index 'IX_Task_UserId' is dependent on column 'UserId'.
我的 up() 迁移如下所示:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_TaskList_AspNetUsers_UserId",
table: "TaskList");
migrationBuilder.DropForeignKey(
name: "FK_Template_AspNetUsers_UserId",
table: "Template");
migrationBuilder.DropForeignKey(
name: "FK_Task_AspNetUsers_UserId",
table: "Task");
migrationBuilder.AlterColumn<string>(
name: "UserId",
table: "Task",
nullable: false);
migrationBuilder.AlterColumn<string>(
name: "TaskName",
table: "Task",
nullable: false);
migrationBuilder.AlterColumn<string>(
name: "UserId",
table: "Template",
nullable: false);
migrationBuilder.AlterColumn<string>(
name: "TemplateName",
table: "Template",
nullable: false);
migrationBuilder.AlterColumn<string>(
name: "UserId",
table: "TaskList",
nullable: false);
migrationBuilder.AlterColumn<string>(
name: "ListName",
table: "TaskList",
nullable: false);
migrationBuilder.AddForeignKey(
name: "FK_TaskList_AspNetUsers_UserId",
table: "TaskList",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Template_AspNetUsers_UserId",
table: "Template",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Task_AspNetUsers_UserId",
table: "Task",
column: "UserId",
principalTable: "AspNetUsers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
我不确定错误指的是什么索引,我也不完全理解为什么要删除外键(同样,我所做的只是使一些属性不可为空)。感谢您的帮助。
【问题讨论】:
标签: asp.net asp.net-mvc entity-framework asp.net-core entity-framework-core