2012-04-19 3 views
2

В X/WebSiteMVC3/Ядро/DependencyResolution/XProfile.cs, у меня есть существующее отображение, которое выглядит немного что-то вроде этого:Ошибка AssertConfigurationIsValid AutoMapper при первой загрузке?

CreateMap<DomainObjects.Entities.Thing1, Models.Thing1>(); 
CreateMap<Models.Thing1, DomainObjects.Entities.Thing1>() 
    .ForMember(a => a.Thing2, opt => opt.Ignore()) 
    .ForMember(a => a.ModifiedBy, opt => opt.Ignore()) 
    .ForMember(a => a.ModifiedDate, opt => opt.Ignore()) 
    .ForMember(a => a.CreatedBy, opt => opt.Ignore()) 
    .ForMember(a => a.CreatedDate, opt => opt.Ignore()); 

И мне нужно, чтобы добавить отображение для своего дочернего объекта, так что я положить в этом:

CreateMap<DomainObjects.Entities.Thing2, Models.Thing2>(); 
CreateMap<Models.Thing2, DomainObjects.Entities.Thing2>() 
    .ForMember(a => a.ModifiedBy, opt => opt.Ignore()) 
    .ForMember(a => a.ModifiedDate, opt => opt.Ignore()) 
    .ForMember(a => a.CreatedBy, opt => opt.Ignore()) 
    .ForMember(a => a.CreatedDate, opt => opt.Ignore()); 

И это работает, за исключением первой загрузки страницы, я получаю это: были найдены

неотображённых членов. Просмотрите типы и элементы ниже. Добавить выражение пользовательского отображения, игнорировать, добавить пользовательский распознаватель или изменить тип источника/назначения

Thing2 -> Thing2 (список членов назначения)

XXWebSiteMVC3.Models.Thing2 -> XXDomainObjects.Entities .Thing2 (список членов назначения)

thing1

StackTrace:

AutoMapper.ConfigurationStore.AssertConfigurationIsValid (IEnumerable`1 typeMaps) +684 AutoMapper.ConfigurationStore.AssertConfigurationIsValid() +12 AutoMapper.Mapper.AssertConfigurationIsValid() +23 XXWebSiteMVC3.Core.DependencyResolution.AutomapperRegistry.Configure() в C: \ Source \ XXWebSiteMVC3 \ ядро ​​\ DependencyResolution \ AutomapperRegistry.cs: 13 XXWebSiteMVC3.MvcApplication.Application_Start() в C: \ Source \ XXWebSiteMVC3 \ Global.asax.cs: 96

Но каждый другая последующая нагрузка, она работает по назначению !?

Итак ... почему Thing2 терпит неудачу, когда его реализация совпадает с реализацией Thing1 (которая работает все время)? И почему Thing1 упоминается в ошибке для Thing2 (у меня такое чувство, что это причина, но штопает, если я смогу увидеть ее в 10 утра в этот холостой четверг)?

Muchos Danke!

+0

Как вы звоните в конфигурацию automapper? Из Application_Start в global.asax.cs? – Simon

+0

Да, "Core.DependencyResolution.AutomapperRegistry.Configure();" вызывается из Application_Start в global.asax.cs.Я был в ужасе от этой проблемы, благодаря тому, что это мое первое приложение MVC любого уровня, и тот факт, что разработчик, который написал его, находится в отпуске, поэтому я стрингер (который тоже не хочет меняться многое в кодовой базе благодаря моему невежеству больше, чем что-либо еще). – Campbeln

ответ

4

В конце концов, это была вызвана перекрестной ссылкой на Thing2 назад к thing1 ... так что я должен был сделать это ...

CreateMap<DomainObjects.Entities.Thing2, Models.Thing2>(); 
CreateMap<Models.Thing2, DomainObjects.Entities.Thing2>() 
!-> .ForMember(a => a.Thing1, opt => opt.Ignore()) 
    .ForMember(a => a.ModifiedBy, opt => opt.Ignore()) 
    .ForMember(a => a.ModifiedDate, opt => opt.Ignore()) 
    .ForMember(a => a.CreatedBy, opt => opt.Ignore()) 
    .ForMember(a => a.CreatedDate, opt => opt.Ignore()); 

Что действительно поразило меня странным является то, что ошибка сообщение, которое я получал («Unmapped members found found ...») не появился в Google !? Обычно, когда это происходит, мне удалось сделать что-то действительно странное/нечеткое, поэтому мой быстрый триггер задал здесь вопрос. Где, как в этом случае, проблема была несколько тривиальной.

Итак ... тем, кто может попасть сюда через Google: это скорее всего связано с вашей моделью, а не с какой-то странностью с AutoMapper. хотя я до сих пор не знаю, почему сопоставления «работали» на втором проходе !? Это просто странно!

+0

У меня такая же ошибка .. я уверен, что это моя новинка с ней .. по крайней мере, это начало .. спасибо! – hanzolo

Смежные вопросы