Я пытаюсь изменить тип идентификатора из строки по умолчанию для пользователя идентификации. Я получаю исключение при попытке зарегистрировать службу удостоверения в методе службы конфигурации.Переопределить тип идентификатора идентификатора в .net-ядре
Это то, что я пытаюсь сделать в моем методе 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 ».
Основываясь на формулировке ошибки, я считаю, что безумно, что я пытаюсь изменить тип. Что мне здесь не хватает?
пример [здесь] (http://stackoverflow.com/questions/37166098/how-to-make-ef-core-use-a-guid-instead-of-string-for-its -id-primary-key/37173202 # 37173202), используя Guid для PK – tmg
@tmg: вы должны были инициировать за него закрытое голосование, чтобы оно получило четкую маркировку, когда на него указывали дублирующие и будущие пользователи. – Tseng
@ С учетом того, что вы правы – tmg