【问题标题】:AspNetUsers replace Id from string to int - cannot insert NULL into Column 'Id' TableAspNetUsers 将 Id 从字符串替换为 int - 无法将 NULL 插入列“Id”表
【发布时间】:2023-03-24 22:08:01
【问题描述】:

我需要将AspNetUsers 中的键列Id 从字符串更改为整数。

我遵循了本指南: https://docs.microsoft.com/en-us/aspnet/identity/overview/extensibility/change-primary-key-for-users-in-aspnet-identity

除了start-up.Auth 配置(我只有 app.UseCookieAuthentication(new CookieAuthenticationOptions());)

尝试注册用户时,我收到此错误:

无法将值 NULL 插入到列“Id”、表“click2lockdb.dbo.AspNetUsers”中;列不允许空值

我尝试手动添加 ID:

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]  
public override int Id { get; set; }

但我仍然遇到同样的错误。

【问题讨论】:

    标签: c# asp.net-core asp.net-web-api


    【解决方案1】:

    您不能随意更改身份框架的工作方式。数据库将在哪里获得其自动生成的编号?该列是否设置为标识列并自动递增?有一个抽象可以为您处理所有这些,您无法更改它。

    【讨论】:

    • 我按照微软指南解释了如何做,但看起来我错过了一些东西,我改变了列 ID 的类型,这是一个标识列
    • 没那么简单。该表还有其他具有外键约束的表。
    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多