首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以使用自动映射程序将多个DTO对象映射到单个ViewModel?

是否可以使用自动映射程序将多个DTO对象映射到单个ViewModel?
EN

Stack Overflow用户
提问于 2010-01-25 00:30:18
回答 6查看 13.6K关注 0票数 20

我想知道是否有可能使用自动映射程序将多个DTO对象映射到单个ViewModel对象?

实际上,我有多个DTO对象,并且希望在ASP.NET MVC2.0的单个屏幕上显示每个对象的信息。为此,我想要展平DTO对象(或其中的一部分...)并将所述视图模型传递给视图。如果我有一个DTO,这会很容易,但我从来没有见过有多个DTO。显然,有许多间接的方法可以做到这一点(在automapper之外),但如果可能的话,这是我想要采用的方法。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-25 00:34:42

您可以创建一个包含两个或更多DTO对象的复合DTO,并将复合DTO映射到输出视图模型。

票数 10
EN

Stack Overflow用户

发布于 2012-01-19 16:31:49

Stack Overflow用户

发布于 2015-05-21 18: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
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2127786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档