AutoMapper合并两个类型,忽略一个属性

本文关键字:一个 属性 两个 合并 AutoMapper 类型 | 更新日期: 2023-09-27 18:14:53

我有这个实体:

public class MyType
{
    public Guid Id {get;set;}
    public string Name {get;set;}
}

我想把这两个类型合并在一起,但是源Id需要保持不变。

所以对象是这样填充的:

From the Database => MyType {
    Id: 012312-42134-12321-12,
    Name: "This Type"
}
From the View => MySecondType {
    Id: null,
    Name: "This Type Changed"
}

我想将MySecondType合并到MyType中,但忽略合并中的Id字段。

所以我想也许可以这样做:

Mapper.Map(mySecondType, myType);

将数据库myType填充为视图mySecondType,但没有设置忽略属性

AutoMapper合并两个类型,忽略一个属性

设置你的AutoMapper时,你可以忽略一个属性:

Mapper
    .CreateMap<MySecondType, MyType>()
    .ForMember(x => x.Id, opt => opt.Ignore());

也就是说,在ASP中使用视图模型会更有意义。净MVC。因此,您将拥有具有IdName属性的DB绑定模型MyType,并拥有仅具有Name属性并在视图中使用的MyTypeViewModel。那么你就不需要忽略任何属性了。这将自动来自于视图模型的设计。