我正在使用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);
但是当
TEntity
是Order
且TDto
是OrderDto
时,我得到一个异常提示:从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/