我创建了以下地图:
Mapper.CreateMap<UsuarioViewModel, GEN_USUARIOS>();
在这张地图中,有一些属性是“int?” (可为空的外键),例如 IDSUPERVISOR。
为了应用映射,我使用以下句子:
Mapper.Map<UsuarioViewModel, GEN_USUARIOS>(usuarioVM, usuario);
- 如果源具有值 (5) 而目标没有值 (null),则将值应用于目标 (5)。
- 如果源具有值 (6) 而目标具有另一个值 (5),则该值将正确应用于目标 (6)。
- 但是,如果两者具有相同的值(不修改值),则destination 中的属性映射到NULL,这是错误的!
这是一个错误还是我遗漏了什么?
编辑:我已经能够在一个简单的项目中隔离问题。我在 GitHub 中创建了一个存储库:https ://github.com/farlop/TestAutomapper 。它包括用于创建数据库模式和示例数据的代码和 SQL 脚本。要对其进行测试,只需编辑 IDSUPERVISOR 列中具有值的记录,然后保存而不更改任何数据。您可以看到值在不应该更新为 null 的情况下如何更新