2010-12-14 19 views
10

Automapper'ı kullanarak, bir nesnede özellik değerinin eşlemesini bir dizenin örneğine nasıl işlersiniz? Temel olarak bir Role nesnelerinin bir listesi var ve her bir "name" özelliğinin içeriğini karşılık gelen bir dize listesiyle eşleştirmek için Automapper'ı kullanmak istiyorum (bu yüzden sadece bir dizi dize ile sonuçlandım). Eminim açık bir cevabı vardır, ancak çalışmasını sağlamak için "CreateMap" a eklemem gereken eşleştirmeyi bulamıyorum. Ben Automapper seviyorum (ve çok sayıda proje kullanmak)Automapper: Bir nesnenin özellik değerini bir dizeye eşleme

public class Role 
{ 
    public Guid Id{get;set;} 
    public string Name{get;set;} 
    ... 
    ... 
} 

// What goes in here? 
Mapper.CreateMap<Role, string>().ForMember(....); 

var allRoles = Mapper.Map<IList<Role>, IList<string>>(roles); 

cevap

21

, ancak bu basit bir LINQ deyimi ile daha kolay olmaz:

ilgili kod örneği aşağıda gösterilmiştir?

var allRoles = from r in roles select r.Name 

bu gerçekleştirmenin AutoMapper yolu: Bu durumda

Mapper.CreateMap<Role, String>().ConvertUsing(r => r.Name); 
+0

muhtemelen haklısın ve bizim altyapısı ile uyabilecek, ama buna rağmen ben bilerek ilgi duyarım nasıl/eğer Automapper ile yapılabilir. –

+1

Üzgünüz - orijinal sorunuzu yanıtlamış olmalı. :) Bu işe yarayacak: Mapper.CreateMap (). ConvertUsing (r => r.Name); – PatrickSteele

+0

Bunu yapmak için bir Automapper yolu sağladığınız için teşekkürler, umduğum gibi çalışır. –

İlgili konular