0
我們有一個複雜的對象用戶,其中包含一堆其他對象的列表。自動映射器不會忽略錯誤的屬性
User
List<User> Subordinates {get; set;}
etc....
當我們運行的代碼,這是完全可以接受的一些屬性是錯誤的,因爲與數據庫的連接已關閉,我們沒有得到下屬說。
在AutoMapper中,當我試圖將用戶類映射到另一個類時出現錯誤。
所以在下屬屬性中的錯誤是;
'((System.Data.Entity.DynamicProxies.User_26F7582000F06E0D5B307573194E69014E40D1C586E95D4E4932757C1F4DE360)((System.Data.Entity.DynamicProxies.WorkflowTask_DEDE69BC0D3CAFD0CCDA62406BC48A7A7CCBD5E8B13369FF5E761B64348A767C)thisTask).User).Subordinates' threw an exception of type 'System.ObjectDisposedException'
和AutoMapper拋出的錯誤是;
{"Error mapping types.\r\n\r\nMapping types:\r\nWorkflowTask -> jsonTask\r\nDataRepository.WorkflowTask -> Tasks.Models.jsonTask\r\n\r\nType Map configuration:\r\nWorkflowTask -> jsonTask\r\nDataRepository.WorkflowTask -> Tasks.Models.jsonTask\r\n\r\nProperty:\r\nUser"}
然後在InnerException;
{"Error mapping types.\r\n\r\nMapping types:\r\nUser -> jsonUser\r\nDataRepository.User -> Tasks.Models.jsonUser\r\n\r\nType Map configuration:\r\nUser -> jsonUser\r\nDataRepository.User -> Tasks.Models.jsonUser\r\n\r\nProperty:\r\nSubordinates"}
我只是需要AutoMapper忽略那些錯誤的屬性。
謝謝你,是的,我會得出同樣的結論。我遇到的問題是我不需要「加載」實體,我當然不希望將所有事情都回傳給視圖。我只想回傳需要的東西,在這種情況下,下屬並不是必需的。只是想減少傳回的金額。感謝您的鏈接,我會給你一個閱讀。 – griegs
@griegs如果視圖中不需要屬性,則應從相應的視圖模型中刪除它們。如果一個視圖需要它們,但另一個視圖不需要,則應該創建不同的視圖模型,而不是共享一個視圖模型。 –
是的好點!謝謝丹尼,那就是我要做的。我正走在一條非常黑暗的道路上,只需要有人爲這個愚蠢點亮一盞燈。謝謝。 +1 – griegs