C# 将标识Id从字符串更改为int

C# 将标识Id从字符串更改为int,c#,.net,identity,C#,.net,Identity,我试图将Id从字符串更改为int,但遇到了一个问题: 所有其他帖子都已在_启动文件中使用: services.AddIdentity<User, IdentityRole<int>>.() .AddEntityFrameworkStores<DatabaseContext,int>() .AddDefaultTokenProviders(); services.AddIdentity.() .AddEntityF

我试图将Id从字符串更改为int,但遇到了一个问题: 所有其他帖子都已在_启动文件中使用:

    services.AddIdentity<User, IdentityRole<int>>.()
        .AddEntityFrameworkStores<DatabaseContext,int>()
        .AddDefaultTokenProviders();   
services.AddIdentity.()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
但是,当我尝试执行相同操作时,在DatabaseContext之后添加int时会出现以下错误:

“IdentityBuilder”不包含“AddEntityFrameworkStores”的定义,并且找不到接受“IdentityBuilder”类型的第一个参数的扩展方法“AddEntityFrameworkStores”(是否缺少using指令或程序集引用?)(CS1061)(演示文稿)

我做的其他改变:

       public class User : IdentityUser <int>  

       public class DatabaseContext :IdentityDbContext <User,IdentityRole<int>,int>                     

       protected override void OnModelCreating(ModelBuilder modelBuilder)

       {

        modelBuilder.Entity<User>(i => {
            i.ToTable("Users");
            i.HasKey(x => x.Id);
        });
        modelBuilder.Entity<IdentityRole>(i => {
            i.ToTable("Role");
            i.HasKey(x => x.Id);
        });
        modelBuilder.Entity<IdentityUserRole<int>>(i => {
            i.ToTable("UserRole");
            i.HasKey(x => new { x.RoleId, x.UserId });
        });
        modelBuilder.Entity<IdentityUserLogin<int>>(i => {
            i.ToTable("UserLogin");
            i.HasKey(x => new { x.ProviderKey, x.LoginProvider });
        });
        modelBuilder.Entity<IdentityRoleClaim<int>>(i => {
            i.ToTable("RoleClaims");
            i.HasKey(x => x.Id);
        });
        modelBuilder.Entity<IdentityUserClaim<int>>(i => {
            i.ToTable("UserClaims");
            i.HasKey(x => x.Id);
        });
            base.OnModelCreating(modelBuilder);

} 
公共类用户:IdentityUser
公共类数据库上下文:IdentityDbContext
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity(i=>{
i、 ToTable(“用户”);
i、 HasKey(x=>x.Id);
});
modelBuilder.Entity(i=>{
i、 ToTable(“角色”);
i、 HasKey(x=>x.Id);
});
modelBuilder.Entity(i=>{
i、 ToTable(“用户角色”);
i、 HasKey(x=>new{x.RoleId,x.UserId});
});
modelBuilder.Entity(i=>{
i、 ToTable(“用户登录”);
i、 HasKey(x=>new{x.ProviderKey,x.LoginProvider});
});
modelBuilder.Entity(i=>{
i、 ToTable(“RoleClaims”);
i、 HasKey(x=>x.Id);
});
modelBuilder.Entity(i=>{
i、 ToTable(“用户索赔”);
i、 HasKey(x=>x.Id);
});
基于模型创建(modelBuilder);
} 

可能您正在使用的是
ASP.NET Core 2.x
,它不再接受泛型
TKey
参数

AddEntityFrameworkStores方法不接受TKey参数作为 它是在ASP.NETCore1.x中实现的。主键的数据类型由 正在分析DbContext对象

相关链接:


请不要破坏您的帖子。通过在Stack Exchange网络上发布,您已授予SE分发该内容的不可撤销的权利(根据)。根据SE政策,任何破坏行为都将恢复。我试图删除我的帖子,但没有找到任何删除内容button@CalvT븃 不完全正确;如果问题:没有答案或只有一个答案,但该答案没有投票权,则用户可以删除自己的问题。。。只需单击问题下方的删除链接。好啊谢谢你,还有sorry@CalvT븃 不,只有一张,目前只有0票。更有可能的是,大卫没有注意到问题下面微妙的“删除”链接。