我正在尝试从身份用户的字符串默认值更改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'类型的约束。
基于错误的措辞,我相信我正在努力改变这种类型。我在这里缺少什么?
答案 0 :(得分:0)
感谢tmg将我链接到类似的问题。该帖子修复了我的情况。虽然当我尝试创建迁移时,我正在使用guid和int进行某种操作数冲突。我会试着解决这个问题。
由于