JP.*_*JP. 18 .net c# asp.net asp.net-mvc automapper
我想知道是否可以使用Automapper将多个DTO对象映射到单个ViewModel对象?
本质上,我有多个DTO对象,并希望在ASP.NET MVC 2.0中的单个屏幕上显示每个对象的信息.为此,我想将DTO对象(或其中的一部分......)展平到Viewmodel中,并将所述viewmodel传递给视图.如果我有一个DTO,这将很容易,但我从未见过它是用多个完成的.显然,有很多迂回的方法可以做到这一点(在automapper之外),但这是我想采取的方法,如果可能的话.
如果您有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; }
}
Run Code Online (Sandbox Code Playgroud)
并为两个DTO创建映射以查看模型:
CreateMap<Dto1, FlattenedViewModel>();
CreateMap<Dto2, FlattenedViewModel>();
Run Code Online (Sandbox Code Playgroud)
您可以将1st 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
Run Code Online (Sandbox Code Playgroud)
您可以创建一个复合DTO,它包含两个或多个DTO对象,并将复合DTO映射到输出视图模型.
归档时间: |
|
查看次数: |
8974 次 |
最近记录: |