1
我有以下地圖創建:AutoMapper:int?被映射爲空時,有源已值
Mapper.CreateMap<UsuarioViewModel, GEN_USUARIOS>();
在這張地圖上,也有一些性能,這是「廉政?」 (可空的外鍵),例如IDSUPERVISOR。
爲了應用我使用下面的句子的映射:
Mapper.Map<UsuarioViewModel, GEN_USUARIOS>(usuarioVM, usuario);
- 如果源具有值(5)和目的地具有不值(null),則值被施加到目的地(5) 。
- 如果源的值爲(6)且目標具有另一個值(5),則該值將正確應用於目標(6)。
- 但是,如果兩者具有相同的值(不修改該值),則目標中的屬性映射到NULL,這是錯誤的!
這是一個錯誤還是有一些我錯過了?
編輯:我已經能夠在一個簡單的項目中查出問題。我在GitHub中創建了一個存儲庫:https://github.com/farlop/TestAutomapper。它包括代碼和一個SQL腳本來創建數據庫模式和樣本數據。爲了測試它,只需編輯IDSUPERVISOR列中具有值的記錄並保存而不更改任何數據。你可以看到數值如何不應該更新爲空
這很可能是你錯過了一些東西。也許EF正在加入並將其設置爲NULL?這個要點工作得很好。 https://gist.github.com/idursun/7248645 – idursun
你是對的。當然,它必須與EF做些事情。我試過用另一個可空屬性沒有映射到實體,它工作正常。我已對我的測試項目做出了承諾,以反映此問題 – Farlop
嘗試刷新此問題。兩個月後,我的一位同事遇到了同樣的麻煩,我們無法找到問題所在。任何想法? – Farlop