AutoMapper ile özel bir haritalamayla ilgili yardıma ihtiyacım var. Nesnelerin bir koleksiyonunu bir dizi koleksiyona eşlemek istiyorum.AutoMapper: Nesnelerin bir koleksiyonunu dize koleksiyonuna eşleştirilmesi
Yani ben bir Etiket ben bu sınıfın bir IList sahip bir modelde daha
public class Tag
{
public Guid Id { get; set; }
public string Name {get; set; }
}
classd var. Şimdi isimleri bir dizi koleksiyona eşlemek istiyorum. Ben eşleme kuralı tanımlamak nasıl
Thats: Burada
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
Ve ValueResolver geçerli:
protected override string ResolveCore(Tag source)
{
return source.Name;
}
Ama u biliyorum .. o dont iş ;-) Yani belki birisi nasıl yapılacağını biliyorum Doğru ve bana yardımcı olabilir.
thx ..
Oca
SOOO sürü u daha fazla ayrıntı istedi .. Burada u almak .. ama onu kısaltmak var; Yani Modeli)
:
public class Artocle
{
public Guid Id { get; set; }
public string Title {get; set; }
public string Text { get; set; }
public IList<Tag> Tags { get; set; }
}
Ve Tag modelini yukarıda görebilirsiniz.
Bunu bir ArticleView ile eşlemek istiyorum ... etiket modeline, yalnızca bazı iş içerikleri için değil, çıktı için ihtiyacım var.
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 :-)
}
Yani eşleştirmeleri için bir Bootstrapper vardır: Yani burada
i eşlemek gerek ViewModel olduğunu. Benim Haritalama şöyle görünür:
Mapper.CreateMap<Article, ArticleView>()
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())
Ve özel bir yöntemle
public static ArticleView ConvertToArticleView(this Article article)
{
return Mapper.Map<Article, ArticleView>(article);
}
Kaynak ve hedef sınıfları hakkında daha fazla bilgi verebilir misiniz? –
Yani hepsi bunu yaparım :) Umarım baskım yardımcı olabilir :) – Smokefoot