Obecnie używam ViewModels, aby oddzielić moje widoki od rzeczywistej struktury modelu.Model "Połącz" i ViewModel z lub bez AutoMappera?
Na przykład mam jednostkę trwałości użytkownika i MyProfile ViewModel zawierający wszystkie informacje, które użytkownik może zmienić na własną rękę. Do konwersji z użytkownika na MyProfile używam Automapper.
Teraz, gdy użytkownik odsyła swoje (zmienione) informacje, muszę je zapisać. Jednak informacje zawarte w ViewModelu nie są kompletne, a gdy AutoMapper tworzy obiekt trwałości użytkownika z ViewModel, ważne informacje zostaną utracone.
Nie chcę ujawniać tych informacji w widoku warstwy, szczególnie w przypadku ukrytych elementów formularza.
Potrzebuję więc sposobu na połączenie ViewModel w jednostkę trwałości. Czy mogę to zrobić z AutoMapper, czy muszę to zrobić ręcznie?
Przykład:
Moja klasa użytkownika zawiera identyfikator, imię, nazwisko, login i hasło. Użytkownik powinien edytować tylko swoje imię i nazwisko w swoim profilu. Dlatego mój ProfileViewModel zawiera ID, imię i nazwisko. Po przesłaniu informacji z formularza, Automapper tworzy obiekt użytkownika z przesłanego profilu ProfileViewModel, a w tym obiekcie ustawiane są tylko ID, Imię i Nazwisko. Podczas podawania tego elementu do mojego repozytorium utraciłem nazwę użytkownika i hasło.
Dlaczego informacja ta nie jest kompletna? Czy możesz napisać kawałek kodu? –
Użyłem Mapper.Map (model) zamiast najpierw wyszukać użytkownika, a następnie użyć Mapper.Map (użytkownik, model) –
ckonig