我无法使用以下内容,其中array是CustomerContract的数组:
Mapper.Map<IEnumerable<Customer>>(array);
Mapper.Map<IEnumerable<CustomerContract>, IEnumerable<Customer>>(array);
Mapper.Map<Array, List<Customer>>(array);
在我看来,第一个例子应该足够了,但我无法工作。我已经阅读了automapper(https://github.com/AutoMapper/AutoMapper/wiki/Configuration)的配置wiki,但我不明白为什么这是必要的。 Automapper所需的一切都在命令中定义。它是哪种类型(对象和列表),以及我希望它映射到哪个对象。
我只是不了解Automapper的核心概念吗?
我的异常听起来像这样:
缺少类型地图配置或不支持的映射 映射类型:\ r \ nCustomerContract - &gt;客户\ r \ nStimline.Xplorer.Repository.CustomerService.CustomerContract - &gt; Stimline.Xplorer.BusinessObjects.Customer
目的地路径:列表`1 [0]
来源价值:Stimline.Xplorer.Repository.CustomerService.CustomerContract
答案 0 :(得分:14)
您正在映射到IEnumerable ... Automapper可以映射到具体类型而不是接口。
首先注册您的映射(请参阅&#34;缺少类型映射配置或不支持的映射&#34;) 您必须使用CreateMap一次性能
Mapper.CreateMap<something, somethingelse>();
而不是:
Mapper.Map<IEnumerable<Customer>>(array);
试试这个:
Mapper.Map<List<Customer>>(array);
或
Mapper.Map<Customer[]>(array);