Przeszukałem dokumentację AutoMapper, aby znaleźć zalecane rozwiązanie tego problemu, ale nie udało mi się go znaleźć.Zamieść właściwość na rzecz kolekcji
Powiedzmy mam klasy jak poniżej
public class Foo
{
public string Note { get; set; }
}
ta klasa dostaje zaludnionych od klienta i zostanie zmapowany do klasy obiektów następujące domeny
public class Bar
{
public IList<Note> Notes { get; set; }
}
gdzie Note jest
public class Note
{
public string Text { get; set; }
// other properties excluded for brevity
}
Chciałbym odwzorować właściwość string stringów Note
na Foo
, najpierw do właściwości Text
w nowej instancji Note
, a następnie dodaj tę Note
do kolekcji Notes
pod adresem . Używam ValueResolver
do wykonania pierwszej części tej operacji (odwzorowanie łańcucha na nowe wystąpienie Note
), ale nie jestem pewien, jak wykonać drugą część (odwzorowanie tego elementu do elementu w kolekcji).
Jaki jest najczystszy sposób na zrobienie tego?
Bar jest obiektem domeny wypełnionym ze źródła danych. Myślę, że zajmie to mapowanie do nowej instancji obiektu domeny, ale zajmie się przypadkiem, w którym obiekt domeny jest wypełniany ze źródła danych i może już zawierać elementy w kolekcji, a ja chciałbym dodać element do tej kolekcji? –
Zmieniono moją odpowiedź z opcją korzystania z Aftermapa. Alternatywnie możesz użyć niestandardowego konwertera, jeśli sprawy staną się zbyt trudne: http://automapper.codeplex.com/wikipage?title=Custom%20Type%20Converters – PatrickSteele
The MapAfter zadziałało, bardzo dziękuję za skierowanie mnie we właściwym kierunku :) –