gpt4 book ai didi

c# - AutoMapper 无法使用 ASP.NET Core 将 List(1 项)转换为 List(0 项)

转载 作者:行者123 更新时间:2023-11-30 15:20:23 34 4
gpt4 key购买 nike

下面是我用来在 Index.cshtml 中填写表格的代码。属性列表有 1 行, map 模型之后有 0 行。我错过了什么吗?我原以为属性模型也会有 1 行。

// GET://
[HttpGet]
public IActionResult Index()
{
//get
List<Company.Model> list = repo.ReadAll();
//to map
List<Company.DTO> model;

//config for mapping
var config = new MapperConfiguration(cfg => cfg.CreateMap<List<Company.Model>, List<Company.DTO>>());
//create mappper
var mapper = config.CreateMapper();
//the map
model = mapper.Map<List<Company.DTO>>(list);

//return
return View(model);
}

当我做错了什么时请告诉我!我的第一个 Automap 和 Stack Overflow 上的第一篇文章。谢谢!!

最佳答案

将一个模型映射到另一个模型。 Automapper 足够智能,可以映射集合:

var config = new MapperConfiguration(cfg => cfg.CreateMap<Company.Model, Company.DTO>());

现在,您还没有告诉它如何映射 ModelDTO !它只知道如何映射 List<Model>List<DTO> ,这很棒,但它不知道如何映射集合中的每个单独元素!

现在它知道如何将模型映射到 dto,它知道如何将一个集合映射到另一个集合:

model = mapper.Map<List<Company.DTO>>(list);

每个集合类型是什么并不重要,只要它们都是集合即可。输入可以是一个数组,您可以将其映射到 List<DTO> , 没问题。就像我说的,Automapper 在集合方面很智能。它只需要知道如何映射您的内容。

这意味着您永远不需要将事物集合映射到小部件集合。只需将事物映射到小部件,然后让 Automapper 完成剩下的工作。这是一个勤奋的人:)

关于c# - AutoMapper 无法使用 ASP.NET Core 将 List<Model>(1 项)转换为 List<DTO>(0 项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270974/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com