Следующая ошибка произошла, когда я использовал AutoMapper - PullRequest
0 голосов
/ 29 августа 2018

Среда разработки:

AutoMapper: 7.0.1 Netcore: 2,1

Неверное содержание: Не нанесенные на карту участники были найдены. Просмотрите типы и членов ниже. Добавить пользовательское выражение сопоставления, игнорировать, добавить пользовательский преобразователь или изменить тип источника / назначения Если нет подходящего конструктора, добавьте ctor без аргументов, добавьте необязательные аргументы или отобразите все параметры конструктора

Моя модель:

public partial class XsOrdersitems
    {
        public int Id { get; set; }
        public string ParentNo { get; set; }
        public string GoodsSn { get; set; }
        public string Name { get; set; }
        public string Barcode { get; set; }
    }

Мой тип DTO:

public class DTOOrderItem
    {
        public string OrderPaNo { get; set; }
        public string OrderNo { get; set; }
        public string OrderNe { get; set; }
        public string OrderComm { get; set; }
    }

Моя конфигурация отображения:

reateMap<DTOOrderItem, XsSalesitems>()
     .ForMember(d => d.Id, opt =>opt.Ignore())
     .ForMember(d => d.Name, opt => { opt.MapFrom(s => s.OrderNe); })
     .ForMember(d => d.GoodsSn, opt => { opt.MapFrom(s => s.OrderNo);})          
     .ForMember(d => d.ParentNo, opt => { opt.MapFrom(s =>s.OrderPaNo);})
     .ForMember(d => d.Comment, opt => { opt.MapFrom(s => s.OrderComm); });

Я пытался использовать опц. Ignore() чтобы игнорировать ненастроенные атрибуты сопоставления, но все же сообщили об указанной выше ошибке, пожалуйста, помогите мне, спасибо, что нашли время ответить на мой вопрос.

1 Ответ

0 голосов
/ 29 августа 2018

По вашим примерам вы отображаете не ту модель. Ваше CreateMap определение сопоставляет DTOOrderItem с XsSalesitems, но ваши комментарии предполагают, что вы хотите сопоставить XsOrderitems. Попробуйте добавить еще CreateMap<DTOOrderItem, XsOrderitems>()... с необходимыми ссылками .Ignore(), и вам будет хорошо.

Полное определение картографии:

CreateMap<DTOOrderItem, XsOrderitems>()
    .ForMember(d => d.Id, opt => opt.Ignore())
    .ForMember(d => d.Name, opt => opt.MapFrom(s => s.OrderNe))
    .ForMember(d => d.GoodsSn, opt => opt.MapFrom(s => s.OrderNo))          
    .ForMember(d => d.ParentNo, opt => opt.MapFrom(s =>s.OrderPaNo))
    .ForMember(d => d.Comment, opt => opt.MapFrom(s => s.OrderComm));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...