c# - 使用 IncludeMembers 时 Automapper 出错
问题描述
我正在尝试使用 Automapper 9.0 和IncludeMembers()在两个对象之间进行映射, Request到RequestDto,但是我总是收到以下消息:
没有为类型“请求”定义属性“人员”
我理解错误消息,因为该属性未定义并且知道我可以ForMember
在每个属性上使用,但我想使用IncludeMembers()
. 如何配置 Automapper 以便映射我的对象?
public class RequestDto
{
public string FirstName {get;set;}
}
public class Request
{
public SearchFields SearchFields {get;set;}
}
public class SearchFields
{
public Person Person {get;set;}
}
public class Person
{
public string FirstName {get;set;}
}
映射代码
CreateMap<Request, RequestDto>()
.IncludeMembers(m=>m.SearchFields, m=>m.Searchfields.Person);
CreateMap<Person, RequestDto>(MemberList.None);
CreateMap<SearchFields, RequestDto>(Memberlist.None);
解决方案
试试这样:
CreateMap<Request, RequestDto>()
.ForMember(x => x.FirstName, opt => opt.MapFrom(x => x.SearchFields.Person.FirstName));
推荐阅读
- python - 如何在 Python 中向字典键添加多个值
- group-by - 根据 Google Big Query 中的案例分组和求和
- ssas - SSAS - 向事实表添加新字段而不会出错
- python - 使用 jquery/ajax 显示来自服务器的 JSON 数据
- javascript - 仅为特定表格添加表格行
- javascript - VS 代码高亮 Angular 6 中的 jasmine 函数
- node.js - 为什么从数据库调用返回的对象只能使用一次?
- android - install_referrer 意图弃用
- dataframe - 将文本文件读取到 Pyspark Dataframe 时出错
- excel - 如果不能正常使用计算单元格的功能