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

时间:2014-07-26 17:30:17

标签: c# asp.net-mvc automapper

我有这个实体:

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,但没有设置忽略属性。

1 个答案:

答案 0 :(得分:2)

设置AutoMapper时,您可以忽略属性:

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

这就是说,在ASP.NET MVC中使用视图模型会更有意义。因此,您的数据库绑定模型MyType具有IdName属性,并且MyTypeViewModel只有Name属性,可以在您的视图。那么你不需要忽略任何属性。这将自动来自视图模型的设计。