【发布时间】:2012-11-08 20:59:29
【问题描述】:
我有一个域对象
public class ProductModel
{
public long Id {get;set;}
public string Name {get;set;}
public string SerialNumber {get;set;}
}
单个 Dto 类:
public class ProductDto
{
public long Id {get;set;}
public string Name {get;set;}
public string SerialNumber {get;set;}
}
作为 Dto 对象列表的单个 Dto 类:
public class ProductListDto : List<ProductDto>
{
public List<ProductDto> Products;
public ProductListDto()
{
Products = new List<ProductDto>();
}
}
我想将域对象列表映射到 Dto 对象列表,以便 ProductListDto 对象的“产品”属性自动映射到 ProductModel 对象列表:
ProductListDto dto = new ProductListDto();
Mapper.CreateMap<ProductModel, ProductDto>();
/* dto = (ProductListDto) Mapper.Map<List<ProductModel>, List<ProductDto>>((List<ProductModel>)model); this code line causes error. It is commented out. */
dto.Products = Mapper.Map<List<ProductModel>, List<ProductDto>>((List<ProductModel>)model); // (*) works OK but need to specify "Products" property
代码行 (*) 工作正常,但我想知道除了代码行 (*) 之外,是否还有其他方法可以自动(隐式)映射 dto 对象的“产品”属性?
这意味着我不必像代码行 (*) 的左侧那样编写代码。
【问题讨论】:
-
你是在问你是否可以做类似
dto = Mapper.Map(...)的事情? -
是的,Mightymuke。我尝试过,但在 dto = (ProductListDto) Mapper.Map
- , List
>((List )model);
标签: automapper