gpt4 book ai didi

c# - ValueInjector 不映射属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:27 24 4
gpt4 key购买 nike

我在尝试让 ValueInjector 正确映射我的对象时遇到问题。这是我用于映射的代码:

public IEnumerable<CategoryDTO> FindCategories(IList<object[]> criteria)
{
IEnumerable<Category> categories = _categoryRepo.Find(criteria);
IEnumerable<CategoryDTO> categoriesDto = Mapper.Map<IEnumerable<Category>, IEnumerable<CategoryDTO>>(categories);
return categoriesDto;
}

变量类别包含一个属性:

IEnumerable<Standard> Standards

此属性在我调用的实例中包含两个标准对象。问题是当我从我的类别映射到我的类别 DTO 时。 CategoryDTO 定义如下:

public class CategoryDTO : AuditableDTO
{
public Guid CategoryId { get; set; }
public string Name { get; set; }
public string MachineName { get; set; }
public string Description { get; set; }
public IEnumerable<StandardDTO> Standards { get; set; }
}

映射语句运行后,我调查了 categoriesDto.Standards 的内容,发现它是空的。我本来希望我的标准已经映射,但我确定我在 ValueInjector 中遗漏了一些东西。可能类似于告诉它如何将 Standard 映射到 StandardDTO。有什么想法吗?

编辑:我需要澄清一下,我正在使用这个 http://valueinjecter.codeplex.com/wikipage?title=Automapper%20Simulation&referringTitle=Home

编辑 2:深入挖掘,我发现是我的 Iesi.Collections.HashedSet 导致了这个问题。 Category 的 Standards 属性类型为 Iesi.Collections.ISet,这被转换为 HashedSet。所以我想我真正的问题是如何检查该类型的属性以及如何映射?

最佳答案

我的猜测是 Mapper.Map 不知道映射比 IEnumerable 深一层。您是否尝试过遍历集合,将其映射到 Category、CategoryDTO 级别与 IEnumerable 级别?

关于c# - ValueInjector 不映射属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872222/

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