我的模型对象具有一些用于延迟加载集合的属性,而 AutoMapper 则可以在我不需要它们时加载这些集合(这导致我的数据库中执行数千次查询)。当我调用时,是否可以使 AutoMapper 忽略某些属性Mapper.Map?
public TTarget Adapt<TSource, TTarget>(TSource source)
{
return Mapper.Map<TTarget>(source);
}
Run Code Online (Sandbox Code Playgroud)
对于 AutoMapper 8.0,之前的答案不再有效。
所以调整后的答案是:
Mapper.CreateMap<Person, Doctor>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.LastName))
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForSourceMember(src=> src.FirstName, opt => opt.DoNotValidate());
Run Code Online (Sandbox Code Playgroud)
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Doctor
{
public int Id { get; set; }
public string Name { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
以下是我如何使用 Automapper 忽略属性(我已经包含了如何在源对象和目标对象中忽略属性):
Mapper.CreateMap<Person, Doctor>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.LastName))
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForSourceMember(src=> src.FirstName, opt => opt.Ignore());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5361 次 |
| 最近记录: |