我有 2 个模型:
public class Client
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
...
[ForeignKey("CountryId")]
public Country Country { get; set; }
public Guid CountryId { get; set; }
}
和
public class Country
{
public Guid Id { get; set; }
public string Title { get; set; }
}
我想显示此虚拟机:
public class ClientDetailsDto
{
public Guid Id { get; set; }
...
public string Country { get; set; } // Country's title
}
我应该如何获取国家/地区并将其映射到 ClientDetailsDto 中的字符串国家/地区?
我在 Startup 类 (Startup.cs) 中使用 AutoMapper:
AutoMapper.Mapper.Initialize(config =>
{
config.CreateMap<Entities.Client, Models.ClientDetailsDto>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src =>
$"{src.LastName} {src.FirstName} {src.Patronym}"))
.ForMember(dest => dest.Age, opt => opt.MapFrom(src =>
src.Birthdate.GetCurrentAge()))
// How to get Country's title and map it to ClientDetailsDto.Country?
}
最佳答案
试试这样;
.ForMember(dest => dest.Country, opt => opt.MapFrom(src =>
src.Country.Title)
完整的 map 看起来像;
config.CreateMap<Entities.Client, Models.ClientDetailsDto>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src =>
$"{src.LastName} {src.FirstName} {src.Patronym}"))
.ForMember(dest => dest.Age, opt => opt.MapFrom(src =>
src.Birthdate.GetCurrentAge()))
.ForMember(dest => dest.Country, opt => opt.MapFrom(src =>
src.Country.Title));
关于c# - 通过 id 获取项目并使用自动映射器将其标题映射到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48011865/