Asp.net core 如何在静态类中引用ASP.NET identity Usermanager?
我想在程序的seed方法期间创建一个新用户,但是如何调用CreateAsyncAsp.net core 如何在静态类中引用ASP.NET identity Usermanager?,asp.net-core,dependency-injection,asp.net-identity,Asp.net Core,Dependency Injection,Asp.net Identity,我想在程序的seed方法期间创建一个新用户,但是如何调用CreateAsync public class DbInitializer { private readonly UserManager<ApplicationUser> _userManager; public DbInitializer(UserManager<ApplicationUser> userManager) { _userManager = userMan
public class DbInitializer
{
private readonly UserManager<ApplicationUser> _userManager;
public DbInitializer(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
public static void Initialize(IApplicationBuilder app)
{
OneDbContext context = app.ApplicationServices.GetRequiredService<OneDbContext>();
context.Database.EnsureCreated();
//If there are no users, create a test user
if (!context.Users.Any())
{
var user = new ApplicationUser { UserName = "test", Email = "test@test.com" };
var result = _userManager.CreateAsync(user, "test");
}
公共类DbInitializer
{
私有只读用户管理器_UserManager;
公共数据库初始值设定项(UserManager UserManager)
{
_userManager=userManager;
}
公共静态无效初始化(IApplicationBuilder应用程序)
{
OneDbContext上下文=app.ApplicationServices.GetRequiredService();
context.Database.recreated();
//如果没有用户,请创建一个测试用户
如果(!context.Users.Any())
{
var user=newapplicationuser{UserName=“test”,Email=”test@test.com" };
var result=_userManager.CreateAsync(用户,“测试”);
}
错误CS0120:非静态字段、方法或属性“DbInitializer”需要对象引用。_userManager'您可以从DI获取
userManager
,与获取DbContext实例的方式相同,例如app.ApplicationServices.GetService();
。