我已经意识到这已经被问到了,但我读过的解决方案到目前为止似乎没有什么区别.我正在使用Entity Framework 6.1和AutoMapper 3.1.1.采取以下对象:Company和CompanyListItem; 我试试这个:
Mapper.Configure<Company, CompanyListItem>();
Run Code Online (Sandbox Code Playgroud)
好吧,当我尝试进行实际映射时,它会崩溃并烧毁,但没有定义映射.我知道这是由于Entity Framework创建的代理对象引起的.到目前为止我看到的一个解决方案是调用Map方法的重载版本:
IQueryable<Company> companies = CompaniesService.FindCompanies();
Mapper.Map(companies, typeof(Company[]), typeof(CompanyListItem[]));
Run Code Online (Sandbox Code Playgroud)
它仍然不起作用,并对我大喊大叫.
我还读过其他帖子,从2.2.1开始修复了这个帖子?这是不同的还是它倒退了?我很感激建议.
修复此错误后:当地图存在时,AutoMapper 抛出缺少地图我收到错误:
无法计算表达式,因为当前线程处于堆栈溢出状态。 这是我最初收到错误的地方(如您所见,它与第一个错误是同一行):

更新:
当我将忽略语句添加到我的CreateMap<>();声明中时:
CreateMap<Pages, PagesViewModel>()
.ForMember(m => m.PageTypes, x => x.Ignore())
.ForMember(m => m.SiteMap, x => x.Ignore())
.ForMember(m => m.Row, x => x.Ignore())
.ForMember(m => m.Tracks, x => x.Ignore());
Run Code Online (Sandbox Code Playgroud)
我收到此消息:System.Reflection.TargetParameterCountException: Parameter count mismatch.所以我删除了 Ignore 语句,CreateMaps 如下:
CreateMap<Pages, PagesViewModel>();
CreateMap<PagesViewModel, Pages>();
Run Code Online (Sandbox Code Playgroud)
该错误执行以下操作之一(所有这三种情况都发生了,并且很难重现特定的一种情况):
(更新):
private string PagesURL;
[Required]
[Display(Name = "Page URL")]
[DataType(DataType.Url)]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long and no …Run Code Online (Sandbox Code Playgroud)