У нас есть сложный объект User, который содержит кучу списков других объектов.Automapper не игнорирует свойства с ошибкой
User
List<User> Subordinates {get; set;}
etc....
Когда мы запускаем код, это вполне приемлемо для некоторых свойств ошибочными, поскольку подключение к базе данных был закрыт, и мы не получили сказать подчинённых.
В AutoMapper Я получаю сообщение об ошибке при попытке сопоставить класс пользователя с другим классом.
Таким образом, ошибка в свойстве Subordinates:
'((System.Data.Entity.DynamicProxies.User_26F7582000F06E0D5B307573194E69014E40D1C586E95D4E4932757C1F4DE360)((System.Data.Entity.DynamicProxies.WorkflowTask_DEDE69BC0D3CAFD0CCDA62406BC48A7A7CCBD5E8B13369FF5E761B64348A767C)thisTask).User).Subordinates' threw an exception of type 'System.ObjectDisposedException'
И ошибка, которую бросает AutoMapper;
{"Error mapping types.\r\n\r\nMapping types:\r\nWorkflowTask -> jsonTask\r\nDataRepository.WorkflowTask -> Tasks.Models.jsonTask\r\n\r\nType Map configuration:\r\nWorkflowTask -> jsonTask\r\nDataRepository.WorkflowTask -> Tasks.Models.jsonTask\r\n\r\nProperty:\r\nUser"}
И затем во внутреннем исключении;
{"Error mapping types.\r\n\r\nMapping types:\r\nUser -> jsonUser\r\nDataRepository.User -> Tasks.Models.jsonUser\r\n\r\nType Map configuration:\r\nUser -> jsonUser\r\nDataRepository.User -> Tasks.Models.jsonUser\r\n\r\nProperty:\r\nSubordinates"}
Мне просто нужен AutoMapper, чтобы игнорировать те свойства, которые находятся в ошибке.
Спасибо за это, и да, я пришел к такому же выводу. Проблема в том, что я не «нуждаюсь» в загрузке объектов, и я, конечно же, не хочу передавать все это обратно в представление. Я просто хочу передать то, что нужно, и в этом случае Subordinates не требуется для представления. Просто пытаюсь уменьшить количество, которое возвращается. Спасибо за ссылку, я также дам это прочитать. – griegs
@griegs Если свойства не нужны в представлении, вы должны удалить их из соответствующей модели представления. Если одно представление нуждается в них, а другое - нет, вы должны создать разные модели представлений вместо совместного использования одной модели представления. –
Да, хороший момент! Спасибо Дэнни, вот что я сделаю. Я шел по очень темному пути с этим и просто нуждался в ком-то, чтобы осветить эту глупость. Благодарю. +1 – griegs