0

我正在使用域层抽象的 MVC 模式。我可以将域对象转换为其等效的 DTO 并将其发送到顶层(即控制器并最终发送到视图)。现在如何做相反的事情?我将如何以及在哪里构造实际的 DTO 对象并将其传递给控制器​​?

4

1 回答 1

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 检索客户实体。该实体被传递给映射器对象,该对象将其转换为 CustomerDto 以便返回。

注意我使用 AutoMapper 将我的域对象转换为 DTO。

于 2013-09-27T10:01:49.297 回答