合并-使用AutoMapper映射

治疗

我在AutoMapper中投放时遇到问题。以下是详细信息。

这是我的源代码课

public class FamilyModel
{
    public int FamilyID { get; set; }
    public string FamilyName { get; set; }
}

这是我的目的地班

public class SaveKitViewModel
{
    public int FamilyID { get; set; }
    public string FamilyName { get; set; }
    public int UserId { get; set; }
}

现在,当我尝试使用Automapper将源对象投射到目标对象时,它给了我错误,并且我试图忽略UserId对象,因为它不在Source类中

var mapper = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<FamilyModel, SaveKitViewModel>()
        .ForMember(d => d.UserId, m => m.Ignore());
    }).CreateMapper();
   dbObject = mapper.Map(model, dbObject);
}

有人可以告诉我上述代码有什么问题吗?

斯图尔特

由于UserId不在源映射中,因此您无需.Ignore在映射自举中显式地指定它-默认情况下它将被忽略。

似乎您想将映射的源属性合并到现有的目标对象中。您无需重新分配目标对象-现有属性将发生突变。例如:

var mapper = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<FamilyModel, SaveKitViewModel>();
}).CreateMapper();

var existingSaveKitViewModel = new SaveKitViewModel
{
    UserId = 1234
};
var familyModel = new FamilyModel
{
    FamilyID = 9876,
    FamilyName = "Bloggs"
};
mapper.Map(familyModel, existingSaveKitViewModel);

结果合并existingSaveKitViewModel

    FamilyID = 9876,
    FamilyName = "Bloggs"
    UserId = 1234

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章