C# 自动映射检查目标的前提条件
步骤:C# 自动映射检查目标的前提条件,c#,automapper,C#,Automapper,步骤: 接收ViewModel以更新或创建实体 尝试获取现有实体(如果存在) 调用IMapper.map(视图模型,实体) 因为我向映射提供了一个目的地值,所以可以检查该目的地值的前提条件吗 差不多 .ForMember(x => x.Id, opt => { opt.PreCondition((src, desintation) => destination.Id == null); opt.MapFrom(src => Guid.NewGuid()); }
IMapper.map(视图模型,实体)
.ForMember(x => x.Id, opt => {
opt.PreCondition((src, desintation) => destination.Id == null);
opt.MapFrom(src => Guid.NewGuid());
}
可能吗?也许有更好的方法?找到了
.ForMember(dest => dest.EditedBy, opt => {
opt.PreCondition((src, dest, context) => dest.Id != Guid.Empty);
opt.MapFrom(src => Guid.NewGuid());
});
前提条件在这里应该做什么?只有当某个值为空时才映射?或者其他什么?只有当目标没有IdPreconditions时才进行映射-这在您认为目标对象可能还不存在时是有意义的,即使在您的情况下它确实存在-但是当您定义映射时,AutoMapper无法知道这一点。