我在尝试让ValueInjector正确映射对象时遇到了问题。这是我使用的映射代码: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导致问题。 Categorys的Standards属性被键入为Iesi.Collections.ISet,这会变成HashedSet。所以我想我真正的问题是如何检查该类型的属性,以及如何映射?
最终不得不走上这条道路。有效。 – 2012-08-08 21:48:15