如何使用 UserManager 在 IdentityUser 上加载导航属性

2024-04-11

我已经延长了IdentityUser包含用户地址的导航属性,但是当让用户使用UserManager.FindByEmailAsync,导航属性未填充。 ASP.NET Identity Core 是否有某种方法来填充导航属性,例如实体框架的导航属性Include(),还是我必须手动完成?

我已经设置了这样的导航属性:

public class MyUser : IdentityUser
{
    public int? AddressId { get; set; }

    [ForeignKey(nameof(AddressId))]
    public virtual Address Address { get; set; }
}

public class Address
{
    [Key]
    public int Id { get; set; }
    public string Street { get; set; }
    public string Town { get; set; }
    public string Country { get; set; }
}

不幸的是,您必须手动执行或创建自己的IUserStore<IdentityUser>您在其中加载相关数据的位置FindByEmailAsync method:

public class MyStore : IUserStore<IdentityUser>, // the rest of the interfaces
{
    // ... implement the dozens of methods
    public async Task<IdentityUser> FindByEmailAsync(string normalizedEmail, CancellationToken token)
    {
        return await context.Users
            .Include(x => x.Address)
            .SingleAsync(x => x.Email == normalizedEmail);
    }
}

当然,仅仅为此而实施整个商店并不是最好的选择。

不过,您也可以直接查询商店:

UserManager<IdentityUser> userManager; // DI injected

var user = await userManager.Users
    .Include(x => x.Address)
    .SingleAsync(x => x.NormalizedEmail == email);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 UserManager 在 IdentityUser 上加载导航属性 的相关文章

随机推荐

  • Overflow:hidden 隐藏边框但不隐藏溢出的元素

    我正在研究带有过渡的标题 但有些东西不起作用 我将 ul 设为 120px li 设为 60px 我给 li hover 一个translateY 60px 这样当您将鼠标悬停在 li 上时它就会弹出 我想隐藏溢出的内容 直到您将鼠标悬停在
  • 自定义日期选择器对话框

    目前 我正在使用经过修改的本机对话框来隐藏日期微调器 并且工作正常 但现在我想以这样的格式设置日期 当我旋转月份微调器或年份微调器时 对话框仅显示月份和年份而不是完整的日历日期 我的日期选择器对话框的自定义代码如下 Override pro
  • 如何同时按名称或标准差选择列?

    Solution 我采用了 thelatemail 提供的解决方案 因为我试图坚持使用 tidyverse 和 dplyr 我对 R 仍然很陌生 所以我正在采取一些小步骤并利用辅助库 感谢大家花时间贡献解决方案 df new lt df i
  • IE6 不解析加载的 JavaScript 文件(由 Google 托管的 Recaptcha)

    这是一个非常奇怪的问题 我尝试在其中一个网站上使用 Recaptcha 它适用于除 IE6 之外的所有测试浏览器 我参考了google的js http www google com recaptcha api challenge k the
  • 我如何知道机器上特定 Perl 安装最初提供了哪些模块?

    我如何知道机器上特定 Perl 安装最初提供了哪些模块 这是not的副本 如何判断 Perl 模块是核心还是标准安装的一部分 https stackoverflow com questions 2049735 如何判断 Perl 模块是核心
  • 在发布中部署 PDB 文件

    我有 CI 服务器设置来构建和部署我的所有环境 包括我的生产环境 据我所知 我的所有项目文件的设置和 CI 设置在我的暂存环境构建和生产环境构建之间都是相同的 但是 当我部署到生产环境时 并没有像暂存中那样与 DLL 文件并排放置 PDB
  • CSS“>”与“>”?

    In CSS a gt b是相同的 a gt b 但这两个符号中哪一个更正确呢 我看到在 Chrome 开发者工具中使用了第二个变体 两者都不是 更正确 两者同样有效 唯一的一点就是spec http www w3 org TR selec
  • 在 Ionic 2 中添加自定义图标

    我正在使用 Ionic 2 来开发我的应用程序 我想在我的应用程序中使用我的自定义图标 就像我们使用 ionic 2 图标一样标签 例如
  • 将库发布到 Maven 存储库

    我有一个稳定的开源库 http github com fernandezpablo85 scribe并想知道如何 以及是否 我可以将我的库发布到 Maven 官方存储库 以便人们可以将其包含在他们的pom xml文件并自动下载依赖项 将您的
  • sql server 查询中的明智移位日期时间检查

    我的一个项目中的 sql 查询有一个问题 实际上 我必须检查某个具有三个班次的表中的一个 DateTime 列 即 我必须根据相应班次中的 RegisteredDateTime 列获取记录 我们的轮班时间如下 轮班时间为 24 小时制 Sh
  • Python-PostgreSQL psycopg2 接口 -->executemany

    我目前正在分析维基百科转储文件 我使用 python 从中提取大量数据并将其保存到 PostgreSQL 数据库中 我总是试图让事情进展得更快 因为这个文件很大 18GB 为了与 PostgreSQL 交互 我使用 psycopg2 但该模
  • 自动扩展 Axon 的跟踪事件处理器

    我使用 Axon 框架 4 0 3 和 Spring Boot 来进行事件溯源 并有一个跟踪处理器 该处理器配置为具有多个段 线程来同时处理事件 axon eventhandling processors my processor init
  • 设计confirmation_token无效

    我的用户 rb class User lt ActiveRecord Base devise database authenticatable registerable confirmable token authenticatable r
  • 如何使用 python 避免机器人检测并抓取网站?

    我的问题 我想抓取以下网站 https www coches net segunda mano https www coches net segunda mano 但每次我用 python selenium 打开它时 我都会收到消息 他们将
  • Spring框架有自己的bean吗?

    这段文字来自 Core Java Server Faces 一书 有两个独立的机制是历史的偶然 CDI bean 和 JSF 托管 bean 适用于可在 JSF 中使用的 bean 页 我们建议您使用 CDI bean 除非您的应用程序必须
  • Python - 如何在 Visual Studio Code 本身中显示图形?

    当我尝试运行这个示例时 import matplotlib pyplot as plt import matplotlib as mpl import numpy as np x np linspace 0 20 100 plt plot
  • GDI+闪烁

    所以我正在尝试制作一个廉价的 Gyazo 屏幕截图工具 副本 问题是光标坐标闪烁 我该如何防止呢 我已经尝试过了WM ERASEBKGND但这没有任何帮助 另外我的代码还有什么问题吗 有什么不好的做法 技术吗 include
  • 如何继承替换switch case?

    我正在使用 C Switch case 如何使用继承来替换 情况就像 1 2 3 4 所以 我怎样才能实现它 for eg public Blocks int code bool shp1 switch code case 1 this W
  • 玩具外壳管道不正确

    我不会撒谎 这是一个家庭作业问题 然而 就我而言 积分已经消失了 现在 我只是在寻找答案 因为我想我可能疯了 该程序的目标是执行命令ps A grep inputstring wc l其方式与 shell 的操作方式类似 因此 我生成进程
  • 如何使用 UserManager 在 IdentityUser 上加载导航属性

    我已经延长了IdentityUser包含用户地址的导航属性 但是当让用户使用UserManager FindByEmailAsync 导航属性未填充 ASP NET Identity Core 是否有某种方法来填充导航属性 例如实体框架的导