该问题的解决方法是使用Automapper的ForPath方法来显式地指定包含记录构造函数中的参数。
代码示例:
public record Person(string Name, int Age);
public class PersonViewModel { public string Name { get; set; } public int Age { get; set; } public bool IsAdult { get; set; } }
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap
cfg.ForPath(dest => dest.IsAdult, opt => opt.MapFrom(src => src.Age >= 18));
});
var person = new Person("Tom", 25);
var personViewModel = mapper.Map
Console.WriteLine(personViewModel.Name); // output: TOM Console.WriteLine(personViewModel.Age); // output: 25 Console.WriteLine(personViewModel.IsAdult); // output: True