Здравствуйте! Есть три модели.
public class User
{
public User()
{
this.Accounts = new HashSet<Account>();
}
public int Id { get; set; }
public string TelegramUserId { get; set; }
public virtual ICollection<Account> Accounts { get; set; }
}
public class Account
{
public Account()
{
this.Items = new HashSet<MyItems>();
}
public int Id { get; set; }
public string SteamId { get; set; } = null!;
public User? User { get; set; }
public virtual ICollection<MyItems> Items { get; set; }
}
public class MyItems
{
public int Id { get; set; }
public string MarketHashName { get; set; } = null!;
public int AccountId { get; set; }
public Account? Account { get; set; }
}
Хочу их смаппить с этим дто
public class AllUserDataDto
{
public string TelegramUserIdDto { get; set; } = null!;
public List<Steam> Steam { get; set; } = new();
}
public class Steam
{
public string SteamIdDto { get; set; } = null!;
public List<Skin> Skins { get; set; } = new();
}
public class Skin
{
public string NameDto { get; set; } = null!;
}
для начала сделал так, но никак не могу понять как мне достичь namedto ? хочу смаппить markethashname с NameDto
CreateMap<User, AllUserDataDto>()
.ForMember(s => s.TelegramUserIdDto, opt => opt.MapFrom(r => r.TelegramUserId))
.ForMember(s => s.Steam, v => v.MapFrom(t => t.Accounts.Select(a => new Steam { SteamIdDto = a.SteamId })))
.ForMember(s=> s.Steam.Select(a=> new Skin { }), v=>v.MapFrom(r=>r.Accounts.Select(g=> new Skin { NameDto = r.MarketHashName })))