我想知道是否有可能使用自动映射程序将多个DTO对象映射到单个ViewModel对象?
实际上,我有多个DTO对象,并且希望在ASP.NET MVC2.0的单个屏幕上显示每个对象的信息。为此,我想要展平DTO对象(或其中的一部分...)并将所述视图模型传递给视图。如果我有一个DTO,这会很容易,但我从来没有见过有多个DTO。显然,有许多间接的方法可以做到这一点(在automapper之外),但如果可能的话,这是我想要采用的方法。
发布于 2010-01-24 16:34:42
您可以创建一个包含两个或更多DTO对象的复合DTO,并将复合DTO映射到输出视图模型。
发布于 2012-01-19 08:31:49
发布于 2015-05-21 10:49:43
如果您有2个DTO类和1个平面化视图模型:
public class Dto1
{
public string Property1 { get; set; }
}
public class Dto2
{
public string Property2 { get; set; }
}
public class FlattenedViewModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
并为两个DTO创建映射以查看模型:
CreateMap<Dto1, FlattenedViewModel>();
CreateMap<Dto2, FlattenedViewModel>();
你可以将第一个DTO映射到模型,然后“附加”第二个DTO:
var dto1 = new Dto1 { Property1 = "Value1"; }
var dto2 = new Dto2 { Property2 = "Value2"; }
var model = Mapper.Map<FlattenedViewModel>(dto1); // map dto1 properties
Mapper.Map(dto2, model); // append dto2 properties
https://stackoverflow.com/questions/2127786
复制相似问题