簡體   English   中英

自動映射器-嵌套列表

[英]Automapper - Nested Lists

我正在與AutoMapper一起工作,而我相對較新,所以偶然發現了一個我希望社區可以提供幫助的小型映射問題。

因此,我有兩個數據傳輸對象:

public class UserDto {
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public List<CharacterDto> Characters { get; set; }
}

public class CharaterDto {
    public string CharacterName { get; set; }
    public string ClassName { get; set; }
    public int CharacterLevel { get; set; }
}

和兩個域實體

public class Character {
    public int ID { get; set; }
    public int UserId { get; set; }
    public string CharacterName { get; set; }
    public string ClassName { get; set; }
    public int CharacterLevel { get; set; }
}

public class User {
    public int ID { get; set; }
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

最終目標是能夠通過域實體將DTO接收的數據保存到數據庫中。 但是,當涉及到“ UserDto”的字符列表時,我不知道如何使用AutoMapper正確映射它。 我可以手動映射它,幾乎沒有問題...但是找不到任何有助於解釋此問題的示例或任何可以幫助我更好地理解它的示例。

我曾嘗試做類似的事情:

 CreateMap<UserDto, Character>()
     .ForMember(dest => dest.CharacterName, m => m.MapFrom(source => source.Characters[0].CharacterName));

但是,這似乎僅映射第一個條目,而不映射其他條目。 我也考慮過像這樣映射各個映射:

 CreateMap<CharacterDto, Character>();
 CreateMap<UserDto, Character>()
     .ForMember(?/*this section I cannot figure out*/)

但是無法弄清楚如何將字符集合與映射的CharacterDto相關聯。 我懷疑如果我在沒有這種關聯的情況下運行代碼,那么代碼是否會自動理解for each character in characters每個字符,請使用適當的映射器映射每個字符...如果必須手動執行此操作,則可以...但是如果有一種AutoMapper方式,對構建它的任何幫助將不勝感激。

類型轉換器是您的朋友,可以將1映射到許多這樣的對象。 讓我知道是否需要我進一步講解,並從您的模型中獲得可行的示例。

https://stackoverflow.com/a/18096914/7911333

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM