如何从控制器构造DTO对象

时间:2013-09-26 06:56:30

标签: model-view-controller repository dto

我正在使用域层抽象的MVC模式。我可以将域对象转换为其等效的DTO并将其发送到顶层(即控制器和最终到视图)。现在该怎么做呢?怎么&我将在哪里构建实际的DTO对象并将其传递给控制器​​?

1 个答案:

答案 0 :(得分:0)

我发现最好的方法是使用DTO服务层。这将是控制器(或其他任何东西)可以调用以检索和转换DTO的函数集合。

我还建议在这一层中对DTO映射(反之)做域对象,它将所有与DTO相关的逻辑保存在一层。

以下是DTO服务层功能的示例:

        public CustomerDto GetCustomer(Guid customerId) {

        var roService = new RoService<Customer>(new Repository<Customer>(_dbContextFactory));
        return _mapper.ToCustomerDto(roService.Get(customerId));
    }

这将通过其Id检索Customer实体。该实体被传递给mapper对象,该对象将其转换为CustomerDto以便返回它。

N.B。我使用AutoMapper将我的域对象转换为DTO。