【发布时间】:2013-11-13 01:55:57
【问题描述】:
创建地图
Mapper.CreateMap<Unidade, unidadeDTO>();
Mapper.CreateMap<unidadeDTO, Unidade>();
public ICollection<Unidade> BuscarPorParametos(Expression<Func<Unidade, bool>> parametros)
{
return Mapper.Map<ICollection<unidadeDTO>, ICollection<Unidade>>(unidadeDeTrabalho.UnidadeDAO.BuscarPorParametros(Mapper.Map<Expression<Func<Unidade, bool>>, Expression<Func<unidadeDTO, bool>>>(parametros)));
}
自动映射器异常:
缺少类型映射配置或不支持的映射。
映射类型:表达式
1 -> Expression1 System.Linq.Expressions.Expression1[[System.Func2[[Unidade, Dominio, 版本=1.0.0.0,文化=中性, PublicKeyToken=null],[System.Boolean, mscorlib, 版本=4.0.0.0, 文化=中性,PublicKeyToken=b77a5c561934e089]],mscorlib, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089]] -> System.Linq.Expressions.Expression1[[System.Func2[[unidadeDTO, 基础设施,版本=1.0.0.0,文化=中性, PublicKeyToken=null],[System.Boolean, mscorlib, 版本=4.0.0.0, 文化=中性,PublicKeyToken=b77a5c561934e089]],mscorlib, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089]]目标路径:表达式`1
来源价值: p => ((p.CodUnidade == 1) AndAlso (p.CodTrabalho == 1))
【问题讨论】:
-
我认为你不能在
Expressions 上使用自动映射器。您通常将表达式用作查询的一部分,然后将这些查询的结果自动映射到不同的类。 -
你能显示
CreateMap语句吗? -
Mapper.CreateMap
(); Mapper.CreateMap (); -
好的,所以你想映射常规对象。你想用第二个
Mapper.Map语句实现什么?现在,您正试图将一个表达式复制到另一个表达式,但您显然不打算这样做(而且这是不可能的)。 -
好的。我需要从存储库映射过滤器到 dao。
标签: c# linq expression automapper func