我想知道:映射器抽象有多复杂?
假设我有一个控制器的动作
ActionResult Find(QueryInputModel query)
模型看起来像这样
class QueryInputModel
{
public string Text {get;set;}
public IEnumerable<string> RegionCodes {get;set;}
}
除其他外,将输入模型转换为视图模型是操作的责任
class QueryViewModel
{
public string Text {get;set;}
public IEnumerable<Region> Regions {get;set;}
}
class Region
{
public string Name {get;set;}
public string Code {get;set;}
}
其中视图模型中的区域名称应使用输入模型中的代码从 db 中获取。现在它是通过QueryMapper.Map(src)
看起来像这样的方法完成的
public QueryViewModel Map(QueryInputModel source)
{
var regions = regionRepository.Get(source.RegionCodes);
var result = new QueryViewModel {Text=source.Text, Regions=regions};
}
将这样的抽象称为Mapper是否正确?可以将直接映射和数据库查询混合在一个方法中吗?