Automapper的Ignore选项将目标属性设置为NULL

时间:2012-05-22 16:20:28

标签: asp.net-mvc-3 automapper

在我的Global.asax中:

        AutoMapper.Mapper.CreateMap<ViewModel, DataType>()
            .ForMember(dest => dest.User, opt => opt.Ignore());

在我的MVC行动中:

        AutoMapper.Mapper.Map(viewmodel, data);

在调用Map()函数之前,data.User不为null。在调用Map()之后,data.User立即为null,但是,如果我理解正确,Ignore()应该完全忽略该属性并保持不变。关于可能导致这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

我显然没有给任何人提供足够的信息来解决这个问题。

我的问题恰好发生,因为我的数据模型是EF4实体,而我的视图模型有映射到映射到上面提到的User对象的外键。一旦我们调用Map(),它就会将User实体重置为null。一旦我从ViewModel中删除了这个属性,一切都按预期开始工作。