Potrzebuję pomocy w specjalnym mapowaniu za pomocą programu AutoMapper. Chcę zmapować kolekcję obiektów do kolekcji ciągów.AutoMapper: Mapowanie kolekcji obiektów do kolekcji ciągów znaków
więc mam Tag classd
public class Tag
{
public Guid Id { get; set; }
public string Name {get; set; }
}
niż w modelu mam IList tej klasy. Teraz chcę zmapować nazwę do kolekcji ciągów.
Ów jak zdefiniować regułę mapowania:
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
I tu jest moje ValueResolver:
protected override string ResolveCore(Tag source)
{
return source.Name;
}
Ale u know .. to nie pracy ;-) Więc może ktoś wie jak to zrobić to prawda i może mi pomóc.
thx dużo
Jan
taaak .. u chciał więcej szczegółów .. tutaj u get it .. ale mam skrócić;)
więc model:
public class Artocle
{
public Guid Id { get; set; }
public string Title {get; set; }
public string Text { get; set; }
public IList<Tag> Tags { get; set; }
}
I model Tag u można zobaczyć powyżej.
Chcę go odwzorować na widok artykułu ... Potrzebuję modelu tagu tylko w kontekście biznesowym, a nie do wyjścia.
Więc tutaj jest ViewModel muszę map do:
public class ArticleView
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public IList<string> Tags { get; set; } // The mapping problem :-)
}
Więc mam inicjującego dla odwzorowań. Moje mapowania wygląda następująco:
Mapper.CreateMap<Article, ArticleView>()
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
I mapować manuelly specjalną metodą
public static ArticleView ConvertToArticleView(this Article article)
{
return Mapper.Map<Article, ArticleView>(article);
}
Czy możesz podać więcej informacji o klasach źródłowym i docelowym? –
Więc to wszystko robię :) Mam nadzieję, że moje wydanie może pomóc :) – Smokefoot