首页 新闻 会员 周边 捐助

Expression<Func<TDto, IEnumerable<C>>> 转<Expression<Func<TEntity, IEnumerable<C>>>

0
[已解决问题] 解决于 2018-09-11 10:29

我使用automapper 把Expression<Func<TDto, IEnumerable<C>>> 转<Expression<Func<TEntity, IEnumerable<C>>> 报 System.InvalidCastException: 无法将类型为“System.Linq.Expressions.Expression`1[System.Func`2[meixiaohu.Entities.MongoDB.Order,System.Collections.Generic.List`1[meixiaohu.Entities.MongoDB.ChildOrder]]]”的对象强制转换为类型“System.Linq.Expressions.Expression`1[System.Func`2[meixiaohu.Entities.MongoDB.Order,System.Collections.Generic.IEnumerable`1

 

 

转换代码

  public async virtual Task Pull<C>(string id, Expression<Func<TDto, IEnumerable<C>>> field, Expression<Func<C, bool>> expression)
        {
            var entityField = Mapper.Map<Expression<Func<TEntity, IEnumerable<C>>>>(field);

}

zhujinhu的主页 zhujinhu | 初学一级 | 园豆:29
提问于:2017-02-10 20:22
< >
分享
最佳答案
0

Expression是表达式树解析成SQL的,Fun是泛型委托,你最终的实际结果应该是IEnumerable,你应该去掉表达式树和泛型委托,你那样做AutoMapper无法解析!


奖励园豆:5
Jeffcky | 老鸟四级 |园豆:2789 | 2017-02-10 20:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册