AutoMapper Отображение полей в класс - PullRequest
0 голосов
/ 23 июля 2011

Я пытаюсь сделать следующее. У меня есть DTO, который возвращает значения из базы данных, и я хотел бы сопоставить DTO с моделью. Моя модель имеет свойство, которое имеет тип класса. Я хотел бы установить это свойство для нового экземпляра класса, используя значения в DTO. Итак, вот код, который показывает, что я пытаюсь сделать.

public class ItemDTO {
    public int ItemID { get; set; }
    public int ItemPartID { get; set; }
    public string ItemPartName { get; set; }
}

public class ItemModel {
    public int ItemID { get; set; }
    public ItemPartModel ItemPart { get; set; }
}

public class ItemPartModel {
    public int ItemPartID { get; set; }
    public string ItemPartName { get; set; }
}


public void DoMapping() {
    Mapper.CreateMap<ItemDTO, ItemModel>()
            .ForMember(m => m.ItemPart, 
                       dto => dto.MapFrom(ipm => new ItemPartModel() {
                                               ItemPartID = ipm.ItemPartID, 
                                               ItemPartName = ipm.ItemPartName}));
}

Когда я использую карту, созданную здесь, я получаю свойство ItemPart ItemModel со значениями 0 и ItemPartName из ItemPartName

Пожалуйста, дайте мне знать, если есть больше информации, которую я могу предоставить, и спасибо за просмотр.

1 Ответ

0 голосов
/ 25 июля 2011

Кажется, что моя логика была в порядке, и что синтаксис правильный. Это была простая ошибка в моем коде, когда я вызывал свойство ItemPart. Первоначально моя модель содержала свойство ID (int) и Name (строка) части элемента (в моем проекте именование отличается от имен в моем примере). Я заменил эти два свойства на одно свойство, используя тип класса ItemPartModel, который инкапсулировал оба поля. Мой код пользовательского интерфейса не был обновлен и просто отображал часть Class Item .ToString (). Как только я обновил свой код пользовательского интерфейса, он заработал. В любом случае, это мое оправдание, однако я оставлю этот вопрос как есть, так как у меня были некоторые проблемы с поиском решения того, что я пытался сделать здесь с Automapper, и кто-то еще может найти это полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...