我创建了以下地图:
Mapper.CreateMap<UsuarioViewModel, GEN_USUARIOS>();
在这个Map中,有一些属性是'int?' (可以为空的外键),例如IDSUPERVISOR。
为了应用映射,我使用以下句子:
Mapper.Map<UsuarioViewModel, GEN_USUARIOS>(usuarioVM, usuario);
这是一个错误还是有些东西我不见了?
编辑:我已经能够在一个简单的项目中找出问题所在。我在GitHub中创建了一个存储库:https://github.com/farlop/TestAutomapper。它包括用于创建数据库模式和示例数据的代码和SQL脚本。要测试它,只需编辑IDSUPERVISOR列中有值的记录,只需保存而不更改任何数据。您可以看到值不应该时更新为null答案 0 :(得分:0)
如上所述here,问题是还有一个导航属性也被映射。由于源对象具有null值的此属性,因此覆盖了目标对象的导航属性。因此,在保存对数据库的更改时,EF正在使用null值更新外键属性。