gpt4 book ai didi

C# Automapper 在 Null 时忽略属性

转载 作者:太空狗 更新时间:2023-10-29 22:33:33 24 4
gpt4 key购买 nike

我正在我的 AccountEditViewModel(用于编辑用户的 View 模型)和我的 User(表示数据库中用户的数据模型)之间创建一个 Automapper 映射。如果填写了密码字段,我想加密该密码并存储它,但是如果它在我想保留旧密码中为空。我尝试了下面的代码,但是它是错误的,model.Ignore() 不返回字符串值。解决这个问题的最佳方法是什么。我可以使用 ForMember() 方法完成此操作还是需要自定义解析器?

Mapper.CreateMap<AccountEditViewModel, User>()
.ForMember(model => model.Password, model => model.MapFrom(user => user.Password != null ? EncryptPassword(user.Password) : model.Ignore()));

最佳答案

试试这个:

Mapper.CreateMap<AccountEditViewModel, User>()
.ForMember(model => model.Password, model => model.Ignore())
.AfterMap((src, dst) =>
{
if (src.Password != null)
dst.Password= EncryptPassword(src.Password);

});

关于C# Automapper 在 Null 时忽略属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10982838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com