我创建了一个类库来放置我的存储库,域模型和DTO。
例如,当用户调用ClienteRepository.GetById(1)时,它应获取客户端域模型并转换为ClientDTO以返回此示例,例如:
public class ClientRepository{
public ClientDTO GetById(int id){
var clientDto = Mapper.Map<Client, ClientDTO>(_db.Client.Find(id));
return clientDto;
}
}
问题是Mapper.Map不起作用,因为我没有创建 map (
Mapper.CreateMap<Client, ClientDTO>()
)。我的问题:如果没有global.asax来创建它,该如何在类库中执行此操作?
最佳答案
您不需要Automapper的Global.asax。
这是对Web项目进行映射初始化的更好方法。
只需将您的初始化代码放在静态构造函数中
static MyStaticCtor()
{
//samples
//Mapper.CreateMap<AccountViewModel, Account>();
//Mapper.CreateMap<AccountSettingViewModel, AccountSetting>()
Mapper.AssertConfigurationIsValid();
}
甚至,您只需在存储库的构造函数中执行此操作即可。
关于automapper - 类库中的AutoMapper,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12603511/