为了账号安全,请及时绑定邮箱和手机立即绑定

自定义新的用户上下文身份时没有服务

自定义新的用户上下文身份时没有服务

C#
慕莱坞森 2022-06-12 11:26:30
我一直试图创建一个用户和一个新的上下文来向 AspNetUsers 表添加字段。令我惊讶的是,当我认为我正确更改了代码时,该错误表明我创建的上下文没有服务。我目前已完成以下步骤:通过创建新上下文“jakformulaireContext”来添加所有 Razor 身份页面。在 jakformularUser 中,我添加了我需要的所有字段。我删除了现有的数据库(已使用 ApplicationDbContext 自动生成)。我做了 jakformulaireContext 的迁移。我创建了一个更新数据库,并在我的新数据库中创建了这些字段。我还修改了 startup.cs 文件,这是修改后的代码:services.AddDbContext<jakformulaireContext>(options =>    options.UseSqlServer(        Configuration.GetConnectionString("jakformulaireContextConnection")));services.AddDefaultIdentity<jakformulaireUser>()    .AddEntityFrameworkStores<jakformulaireContext>();我为此遵循了 Microsoft 教程,但是当我启动该站点时,错误是这样的:An unhandled exception occurred while processing the request.InvalidOperationException: No service for type 'Microsoft.AspNetCore.Identity.UserManager`1[jak.formulaire.Models.jakformulaireContext]' has been registered.Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)Stack Query Cookies Headers
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

错误消息表明它正在尝试解析UserManager<jakformulaireContext>,而用户管理器实际上应该使用用户实体作为其通用类型参数。所以类型应该是UserManager<jakformulaireUser>.

对于面向开发人员的服务,例如UserManager,RoleManager或者SignInManager您通常必须使用用户类型作为类型参数,因此请确保您没有在某处将用户实体类型与数据库上下文类型混为一谈。


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信