覆盖.net核心中的身份ID类型

时间:2017-01-08 17:24:19

标签: c# asp.net-core ef-code-first asp.net-identity

我正在尝试从身份用户的字符串默认值更改ID的类型。 尝试在configure服务方法中注册Identity Service时出现异常。

这就是我在Startup.ConfigureServices方法中尝试做的事情。

public void ConfigureServices(IServiceCollection services)
{

        services.AddDbContext<UserContext>(options =>
               options.UseSqlServer(config.GetConnectionString("DefaultConnection")));

        services.AddIdentity<User, Role>()
        .AddEntityFrameworkStores<UserContext>();
      //.AddDefaultTokenProviders();

        services.AddDbContext<MusicContext>(options =>
                   options.UseSqlServer(config.GetConnectionString("DefaultConnection")));

        services.Configure<IdentityOptions>(options =>
        {
          new IdentityOptionConfiguration(options);
        });    
     services.AddMvc();   
}

这是我继承IdentityUser的类。这是我试图覆盖字符串类型的地方。我希望它是一个int或者甚至是一个guid。我不知道哪个,但我现在要用int。

 public class User : IdentityUser<int>
 {
    public int ID { get; set; }
 }

这是我正在尝试使用的角色。我很好用大部分时间给出的默认角色。

 public class Role : IdentityRole
 {
 }

现在我得到的例外情况如下......

  

System.Private.CoreLib.ni.dll但未在用户代码中处理

     

其他信息:GenericArguments [0],   'MusicianProject.Services.User',开启   'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4 [TUSER,TRole,TContext,TKEY的]'   违反了'TUser'类型的约束。

基于错误的措辞,我相信我正在努力改变这种类型。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

感谢tmg将我链接到类似的问题。该帖子修复了我的情况。虽然当我尝试创建迁移时,我正在使用guid和int进行某种操作数冲突。我会试着解决这个问题。

由于