ApiAuthorizationDbContext PrimaryKey 为 int

Ham*_*hdi 5 c# model-view-controller entity-framework asp.net-identity .net-core

我想将 AspNetUsers 的主键从字符串更改为 int。

    public class ApplicationUser : IdentityUser<int>
        {
            public short FactoryId { get; set; }
            public Factory Factory { get; set; }
        }
Run Code Online (Sandbox Code Playgroud)

但编译器对此并不满意:

public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>{

}
Run Code Online (Sandbox Code Playgroud)

它说:

类型“Domain.Identity.ApplicationUser”不能用作通用类型或方法“ApiAuthorizationDbContext”中的类型参数“TUser”。没有从“Domain.Identity.ApplicationUser”到“M​​icrosoft.AspNetCore.Identity.IdentityUser”的隐式引用转换。

任何想法?

小智 0

错误在于这部分IdentityUser<int> 你不需要添加 te<int>

您是从 IndentityUser 继承的,它不是 int 。

除此之外,我认为您不应该更改实际的主键,只需添加一列包含您想要存储的值,因为您需要更改几乎所有使用微软模型中主键的内容才能使用它。