我正在使用AutoMapper 4.2.1.0,并且已将我的地图定义如下。

 var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<Order, OrderDTO>();
            cfg.CreateMap<Order_Detail, Order_DetailDTO>();
        });
MapperConfig = config;


然后在代码中使用MapperConfig来做到这一点:

var builder = MapperConfig.ExpressionBuilder;
return ((IQueryable<TEntity>) property.GetValue(_db, null)).ProjectTo<TDto>(builder);


但是当TEntityOrderTDtoOrderDto时,我得到一个异常提示:


  从Order到OrderDTO的地图丢失。使用创建
  Mapper.CreateMap


我做错什么了 ?

最佳答案

好。我知道了:
代替 :

return ((IQueryable<TEntity>) property.GetValue(_db, null)).ProjectTo<TDto>(builder);


我应该写:

return ((IQueryable<TEntity>) property.GetValue(_db, null)).ProjectTo<TDto>(MapperConfig);


将配置对象本身传递到ProjectTo。

关于c# - Automapper无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36450885/

10-13 06:06