我创建了一个类库来放置我的存储库,域模型和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/

10-09 04:12