2010-12-14 3 views
10

Использование Automapper, как вы обрабатываете сопоставление значения свойства объекта с экземпляром строки. В основном у меня есть список объектов Role, и я хочу использовать Automapper для сопоставления содержимого каждого свойства «name» с соответствующим списком строк (так что я просто заканчиваю список строк). Я уверен, что у него есть очевидный ответ, но я не могу найти сопоставление, которое мне нужно добавить в «CreateMap», чтобы заставить его работать.Automapper: сопоставление значения свойства объекта со строкой

Пример соответствующего кода приведен ниже:

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); 

ответ

21

Я люблю Automapper (и использовать его в ряде проектов), но не это было бы проще с простой констатацией LINQ?

var allRoles = from r in roles select r.Name 

AutoMapper путь выполнения этого:

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

В этом случае вы, вероятно, правы, и это будет вписываться в нашу инфраструктуру, но даже мне было бы интересно знать, если/как это может быть выполнено с помощью Automapper. –

+1

Извините, должен был ответить на ваш первоначальный вопрос. :) Это должно работать: Mapper.CreateMap (). ConvertUsing (r => r.Name); – PatrickSteele

+0

Спасибо, что предоставили Automapper способ сделать это, он работает точно так, как я надеялся. –

Смежные вопросы