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