【问题标题】:Error migrating to Entity Framework, the table is not updated迁移到实体框架时出错,表未更新
【发布时间】:2019-05-04 07:45:05
【问题描述】:

我在类User - IdentiyUser 中添加了一个新字段,之后我运行了

add-migration [name]

这会创建一个迁移文件,但是在执行update-database 命令后,我得到了两个错误。

我尝试删除数据库并使用它的迁移创建它,数据库创建,我的字段的列被添加,但错误是一样的

执行 DbCommand 失败 (12ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
创建表 [AspNetRoles]
(
[Id] nvarchar(450) 非空,
[名称] nvarchar(256) NULL,
[NormalizedName] nvarchar(256) NULL,
[ConcurrencyStamp] nvarchar(max) NULL,
约束 [PK_AspNetRoles] 主键 ([Id])
);

数据库中已经有一个名为“AspNetRoles”的对象。

迁移

protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.RenameColumn(
            name: "Balance",
            table: "AspNetUsers",
            newName: "Age");
}

protected override void Down(MigrationBuilder migrationBuilder)
{
    migrationBuilder.RenameColumn(
            name: "Age",
            table: "AspNetUsers",
            newName: "Balance");
}

【问题讨论】:

  • 您确定此特定迁移发生错误吗?因为此迁移与错误消息中指出的 AspNetRoles 无关。
  • 不,它总是会出现(
  • 你有多少个迁移?他们有多长?我想看看是否可以全部分享。
  • 目前一,因为我删除了迁移文件夹,不值得吗?

标签: c# asp.net-core entity-framework-core entity-framework-migrations


【解决方案1】:

当您删除迁移以仅创建一个迁移时,您应该删除数据库,因为表已创建并且您会收到该错误。在这种情况下,更快的解决方案是删除所有迁移文件夹和数据库并重新开始。

【讨论】:

    【解决方案2】:
    1. [Column(TypeName ="nvarchar(250)")] - 检查括号和引号(我在这里纠正了错误)

    2. 删除迁移

    3. 广告迁移“InitialCreate”

    4. 更新数据库-详细

    【讨论】:

      【解决方案3】:

      数据库中已经有一个名为“AspNetRoles”的对象。您必须删除带有连接的“AspNetRoles”数据库,然后 您必须再次更新数据库。如果没有,将数据库命名为 AspNetRoles1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-11
        相关资源
        最近更新 更多