gpt4 book ai didi

c# - 使用 Entity Framework 的 ASP.NET MVC Core 项目中的种子角色

转载 作者:行者123 更新时间:2023-11-30 20:31:11 25 4
gpt4 key购买 nike

当我最初创建数据库时,我试图将一些角色植入到我的身份数据库上下文中。

为此,我尝试像此处所述那样实现代码: https://stackoverflow.com/a/29547994/985798

我在我的启动类中的 ConfigureServices 方法中试过这个: public void ConfigureServices(IServiceCollection 服务)

使用这个片段:

var rolestore =
new Microsoft.AspNetCore.Identity.EntityFrameworkCore.
RoleStore<Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole>(identityContext);

var roleManager = new Microsoft.AspNetCore.Identity.RoleManager
<Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole>(rolestore);

//use rolemanager to insert roles etc.

问题是,它似乎在使用 Visual Studio 2017 创建的新核心项目中不起作用。

它给我以下构建错误:

CS7036 There is no argument given that corresponds to the required formal parameter 'roleValidators' of 'RoleManager.RoleManager(IRoleStore, IEnumerable>, ILookupNormalizer, IdentityErrorDescriber, ILogger>, IHttpContextAccessor)'

即使我使用其他重载(其他参数为空值),RoleManager 似乎也不再有“Create”方法。

所以,我卡在了这一点上。我需要做什么?角色管理器的 ASP.NET MVC Core 实现有什么变化吗?我用错了吗?

最佳答案

using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;

public static class Seed
{
public static void Initialize(IServiceProvider provider)
{
var _context = provider.GetRequiredService<ApplicationDbContext>();
var userManager = provider.GetRequiredService<UserManager<ApplicationUser>>();
var roleManager = provider.GetRequiredService<RoleManager<IdentityRole>>();


}
}

然后下面的大部分代码都在startup.cs中的Configure()

Seed.Initialize(app.ApplicationServices);

HTH(希望对您有所帮助)。

关于c# - 使用 Entity Framework 的 ASP.NET MVC Core 项目中的种子角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43572257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com