gpt4 book ai didi

migration - 执行迁移 EF 核心 2.0 时出错,将标识 ID 从字符串更改为 int

转载 作者:行者123 更新时间:2023-12-04 12:03:41 25 4
gpt4 key购买 nike

设想:

我收到了同事在 ASP.NET CORE 中自动生成的项目。帐户/管理服务有自动生成的代码。此代码包括 ApplicationUser 类、DBContext 和迁移文件夹,其中包含 00000000000000_CreateIdentitySchema.cs 和 20180323155805_Snapshot.cs。我一直在尝试将我的 User 类更改为具有整数 ID。为此,我向 IdentityUser 添加了泛型:

public class ApplicationUser : IdentityUser**<int>**
{
}

我还必须创建 ApplicationRole 类,因为它之前是在迁移文件中创建的。
public class ApplicationRole : IdentityRole<int>
{
}

我也改变了我的上下文:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, 
**ApplicationRole, int**>

在迁移文件中,创建了登录方案。添加更改后,我添加了新的迁移。在添加迁移期间,我收到此错误:

要更改列的 IDENTITY 属性,需要删除并重新创建该列。

最佳答案

您需要更新生成的迁移以分步完成。更换 AlterColumn调用以下操作:

  • 添加具有临时名称的新列
  • 去掉原来的专栏
  • 使用原始列名称重命名新列

  • 您可能还必须重建(删除并重新创建)引用该列的所有约束。

    这不是微不足道的,这就是 EF 目前不处理它的原因。功能请求 #329是关于更新 EF 以自动处理此问题。

    关于migration - 执行迁移 EF 核心 2.0 时出错,将标识 ID 从字符串更改为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454227/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com