是否可以扩展UserStore/UserManager以访问覆盖方法中的自定义表(无需创建另一个dbcontext(?
我正在开发一个与Identity集成的遗留数据库。最近,我们向数据库中添加了一个新表 Client,该表与 Users 表具有一对一的关系。要做的是重写 UserManager 类中的 FindAsync 方法以调用基方法,获取用户,然后根据存储在表中的用户客户端 Id,获取客户端名称并将其插入到用户模型中。
以下是我尝试的;但是,对我来说,我认为这是错误的方法,并希望就如何正确应用我正在尝试做的事情提供一些建议。
public override async Task<ApplicationUser> FindAsync(string userName, string password)
{
ApplicationUser user = await base.FindAsync(userName, password);
if (user != null && user.ClientID != null)
{
using (var ctx = new ApplicationDbContext(HostPage.ConnectionString))
{
user.Client = ctx.Clients.Where(p => p.ClientID == user.ClientID).FirstOrDefault();
}
}
return user;
}
您可以在base.FindAsync()
中修改 SQL 以执行对表的连接,从而执行单个查询。