【问题标题】:C# Automapper how to create a list with nested mapping?C# Automapper 如何使用嵌套映射创建列表?
【发布时间】:2021-11-29 18:20:38
【问题描述】:

我正在尝试映射到列表中,该列表中应该有另外两个列表。可行吗?我查看了文档,但找不到我需要的东西,除非我误解了某些东西。

CompanyActivityReport.cs

public int OrganisationID { get; set; }
public string OrganisationName { get; set; }
public Nullable<int> OrganisationSubTypeID { get; set; } 

public CompanyActivityReportTask ReportTask{get; set;}
public CompanyActivityReportNote ReportNotes{get; set;}

我的映射:

var config = new MapperConfiguration(c =>
{
    c.CreateMap<OrganisationMain,CompanyActivityReport>();
    c.CreateMap<TaskMain, CompanyActivityReportTask>();
    c.CreateMap<NoteMain, CompanyActivityReportNote>();

});
var mapper = new Mapper(config);
List<CompanyActivityReport> TestList = mapper.Map<List<CompanyActivityReport>>(OrganisationMainsList).ToList();

【问题讨论】:

  • 您能否在OrganisationMainsList上添加更多信息?
  • 嗨,二宫! OrganisationMainList 是来自 OrganisationMain 的查询列表,但是,这只是一个示例,因为该列表中的此映射并没有给我预期的结果。

标签: c# asp.net mapping automapper


【解决方案1】:

猜你可能需要单独映射每个项目,例如:

            List<CompanyActivityReport> TestList = OrganisationMainsList.Select(x => mapper.Map<CompanyActivityReport>(x))

编辑:选择返回一个 Enumerable,因此如果您希望保持该行为,则需要 .ToList():

 List<CompanyActivityReport> TestList = OrganisationMainsList.Select(x => mapper.Map<CompanyActivityReport>(x)).ToList()

【讨论】:

  • 嗨,Davi,谢谢你的建议,很遗憾,它不起作用,ReportTask 和 ReportNotes 仍然为空。
猜你喜欢
  • 2020-02-04
  • 1970-01-01
  • 2020-07-17
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
相关资源
最近更新 更多