是否可以告诉自动映射器在运行时忽略映射?

2023-12-28

我正在使用 Entity Framework 6 和 Automapper 将实体映射到 dtos。

我有这个型号

public class PersonDto
{
    public int Id { get; set; }
    public string Name { get; set; }
    public AddressDto Address { get; set; }
}

public class AddressDto
{
    public int Id { get; set; }
    public string Street { get; set; }
    public string City { get; set; }
}

我使用自动映射器可查询扩展 https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions从实体映射 dto。

var personDto = dbContext.People.Project().To<PersonDto>();

上述方法的问题在于,它会使 EF 始终加载地址实体。我希望仅当我使用 include(x => x.Address) 明确告诉他们时才加载地址。如果我在自动映射器映射中指定ignore(),则不会加载地址。是否可以告诉自动映射器在运行时忽略地址属性?我正在使用的自动映射器可查询扩展不支持“条件或映射后”等所有功能。有什么解决方法吗?


您需要为 DTO 启用显式扩展。首先在您的配置中:

Mapper.CreateMap<Person, PersonDto>()
    .ForMember(d => d.Address, opt => opt.ExplicitExpansion());

然后在运行时:

dbContext.People.Project.To<PersonDto>(membersToExpand: d => d.Address);

“membersToExpand”可以是目标成员的表达式列表,也可以是表示要扩展的属性名称的字符串值的字典。

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

是否可以告诉自动映射器在运行时忽略映射? 的相关文章

  • InvalidOperationException - 对象当前正在其他地方使用 - 红十字

    我有一个 C 桌面应用程序 其中我连续创建的一个线程从源 实际上是一台数码相机 获取图像并将其放在 GUI 中的面板 panel Image img 上 这必须是另一个线程 如它是控件的代码隐藏 该应用程序可以工作 但在某些机器上 我会在随
  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • Automapper - 具体对象到数组

    我需要将一些值从类映射到数组 例如 public class Employee public string name public int age public int cars 必须转换为 age cars 我尝试过这个 var empl
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 C# 读取 Soap 消息

  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com

随机推荐

  • Hibernate Criteria n+1 最大结果问题

    使用 hibernate ctiteria 我想选择一个对象及其关联的 oneToMany 对象列表 我想对此列表进行分页 以避免可怕的休眠 n 1 选择问题 这是一个可行的解决方案 需要 10 个父对象对数据库进行 11 次访问 Crit
  • PHP登录系统硬编码用户名和密码

    我必须做一个基本的登录系统来保护页面 并且我无法访问数据库 所以我将用户名和密码硬编码存储在 php 页面中 我的问题是 这个登录系统能抵御攻击吗 我需要它保持大约1个月 任何改进建议都会有所帮助 该代码不在 Laravel 中 即使它看起
  • Nuxt部署错误:服务器资源不可用

    为了在 ssr 模式下部署我们的 nuxt 网站 我们首先在 bitbucket 管道中构建和单元测试网站 如果测试成功 我们将构建文件从 bitbucket 服务器复制到我们的生产服务器并触发启动 问题是 Nuxt 文档没有说明服务器上需
  • 与同时使用 minmax_element 相比 min_element 和 max_element 是否有任何效率优势?

    std minmax element 返回一个对 其中包含一个到最小元素的迭代器作为第一个元素 一个到最大元素的迭代器作为第二个元素 std min element 返回一个迭代器到范围 first last 中的最小元素 std max
  • 如何向我的 Linq 选择添加唯一的行号?

    我有以下代码 public IEnumerable
  • Django 1.5:访问 models.py 中的自定义用户模型字段

    我正在开发 Django 1 5 项目 我有一个自定义用户模型 我们称之为CustomUser 另一个应用程序 SomeApp 需要引用此自定义用户模型 为了ForeignKey等的目的 Django文档说使用 User settings
  • 连接两个字符数组?

    如果我有两个像这样的字符数组 char one 200 char two 200 然后我想做第三个连接这些的我该怎么做呢 我努力了 char three 400 strcpy three one strcat three two 但这似乎不
  • 使用 MultipartEntity 构造 POST 请求

    我想构造一个多部分请求 具有以下参数 名称 字符串 电子邮件 字符串 和文件上传 文件 我正在使用下面的 Java 代码 在 Android 中工作 httppost getRequestLine 打印 POST http www myur
  • Shell 重定向与显式文件处理代码

    我的母语不是英语 所以请原谅这个问题的尴尬标题 我只是不知道如何更好地表达它 我在 FreeBSD 机器上 我有一个用以下语言编写的小过滤工具C它通过读取数据列表stdin并通过输出处理后的列表stdout 我像这样调用它 find typ
  • 为什么微调器中的 onNothingSelected 没有被调用?

    我有一个 Android Spinner 当用户在显示 Spinner 的选择面板时按 后退键 时 我想监听该事件 我已经实现了 OnItemSelectedListener 但按后退键时未调用 onNothingSelected Adap
  • Django 的 mod_wsgi 错误:从守护进程读取响应标头时超时

    我正在运行 Django 2 0 4 和 mod wsgi 4 5 20 当我尝试将站点部署到我们的开发环境时 出现错误 parature 奇怪的是 该站点部署在根目录下VirtualHost正在正常响应 Tue Apr 10 13 34
  • 如何在字段级别创建元注释?

    我有这个带注释的休眠类 Entity public class SimponsFamily Id TableGenerator name ENTITY ID GENERATOR table ENTITY ID GENERATOR TABLE
  • Python有效地找到多个多项式的局部最大值/最小值

    我正在寻找一种有效的方法来查找多个 gt 100万 但独立的四阶多项式的局部最小值给定 指定范围 边界 我有两个要求 R1 即使对于 100 万个不同的多项式方程也有效 R2 局部最小值精确到 0 01 即 2dp 这是我使用创建的一些代码
  • 按计划手动触发 GitHub 操作

    我想按计划手动触发 GitHub 操作 但出现以下代码并出现错误 name Update data on workflow dispatch schedule cron 0 5 30 我正在寻找如何正确执行此操作的解决方案 并且有两种选择
  • 我将如何实现一种简单的基于堆栈的编程语言

    我有兴趣通过实现基于堆栈的编程语言来扩展我的计算机编程知识 我正在寻求从哪里开始的建议 因为我打算让它具有类似 pushint 1 会将值为 1 的整数推送到堆栈顶部 并通过诸如 之类的标签进行流量控制L01 jump L01 到目前为止
  • 我的回收者视图上的问题

    我正在尝试显示 recyclerview 并从 firebase 检索数据 但在添加保存在 firebase 存储上的图像后遇到问题 滚动后关闭 我有另一个 recyclerview 它使用相同的数据库 但没有问题 你能给我解决这个问题吗
  • eclipse插件开发

    我想开发一个eclipse插件 哪一个是最好的开始方式 本教程 http www vogella de articles EclipsePlugIn article html是一个很好的起点 然后 您可以通过阅读一本最新的 Eclipse
  • 如何将 Shell 脚本中的部分字符串提取到变量中

    我正在尝试在 sh 中执行以下操作 这是我的文件 foo bar Tests run 729 Failures 0 Errors 253 Skipped 0 baz 如何将 4 个数字拉入 4 个不同的变量 我现在已经在 sed 和 awk
  • C# 用户定义的 CSV 映射到 POCO

    我有一个从串行 UDP TCP 源读取输入数据的系统 输入数据只是不同数据类型 例如 DateTime double int string 的 CSV 示例字符串可能是 2012 03 23 12 00 00 1 000 23 inform
  • 是否可以告诉自动映射器在运行时忽略映射?

    我正在使用 Entity Framework 6 和 Automapper 将实体映射到 dtos 我有这个型号 public class PersonDto public int Id get set public string Name