[altnetde] Mapping mit AutoMapper

7 views
Skip to first unread message

Henning

unread,
May 14, 2010, 1:17:06 PM5/14/10
to altnetde
Hallo,

ich hoffe mich hört hier jemand ... wieso ist es eigentlich hier so
ruhig geworden? Hier war doch letztes Jahr zunächst ganz gut was los
und es gab sogar ein paar ALT.Net E-VANs ... wieso ist dass eigentlich
so ruhig geworden?

Naja, ich versuche einfach mal eine Frage. Ich habe letztens Jimmy
Bogards AutoMapper entdeckt und findet das ziemlich cool. Also gleich
mal im Projekt verwenden. Da stellen sich aber schon mal gleich ein
paar Fragen.

Sagen wir mal, ich habe eine Klasse Pizza, die ich in PizzaDto mappen
will.

--- cut ---
public class Pizza
{
public int Id { get; set; }
public string Name { get; set; }
public IList<Topping> Toppings { get; set; }
}
public class Topping
{
public int Id { get; set; }
public string Name { get; set; }
}

public class PizzaDto
{
public int Id { get; set; }
public string Name { get; set; }
public IList<string> ToppingName { get; set; }
}
--- cut ---

Und dann das ganze mit AutoMapper verwenden:

--- cut ---
var pizza = new Pizza
{
Id = 42,
Name = "FooBar",
Toppings =
{
new Topping {Id=1, Name = "Salami"},
new Topping {Id=2, Name = "Käse"}
}
};
Mapper.CreateMap<Pizza, PizzaJsonDto>();
var pizzaDto = Mapper.Map<Pizza, PizzaDto>(pizza);
--- cut ---

Nur dummerweise wird leider aus Topping.Name nicht auf ToppingName
gemappt :( wäre doch cool. Flattening kann AutoMapper doch
grundsätzlich. Ich fürchte das Problem dürfte die Liste sein.

Hat jemand einen Tipp wie ich das AutoMapper beibringen kann?

Danke!

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe altnetde beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an altn...@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an altnetde+u...@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/altnetde?hl=de, um weitere Optionen zu erhalten.

Albert Weinert

unread,
May 14, 2010, 3:26:04 PM5/14/10
to altn...@googlegroups.com
Hi Hennig,

den Mapper kannst Du so definieren.

Mapper.CreateMap<Pizza, PizzaDto>().ForMember(dto => dto.ToppingNames,
expression => expression.MapFrom(
pizza =>
pizza.Toppings.Select(topping => topping.Name).ToList())
);

Freundliche Grüße

Albert
-----Ursprüngliche Nachricht-----

Albert Weinert

unread,
May 14, 2010, 3:31:02 PM5/14/10
to altn...@googlegroups.com
Alternativ geht auch

Mapper.CreateMap<Pizza, PizzaDto>();
Mapper.CreateMap<IList<Topping>,IList<string>>().ConvertUsing(list => list.Select(t=>t.Name).ToList());

Dann muss aber Topping statt ToppingNames im Dto definiert werden.

public class PizzaDto
{
public int Id { get; set; }
public string Name { get; set; }
public IList<string> Toppings { get; set; }
}


-----Ursprüngliche Nachricht-----
Von: altn...@googlegroups.com [mailto:altn...@googlegroups.com] Im Auftrag von Henning
Gesendet: Freitag, 14. Mai 2010 19:17
An: altnetde
Betreff: [altnetde] Mapping mit AutoMapper

Henning

unread,
May 15, 2010, 8:33:50 AM5/15/10
to altnetde
Cool, das ist doch genau was ich gesucht habe.

Leider finde ich die Seiten auf Codeplex zu AutoMapper nicht so
wirklich gut, wenn man sich da neu reinfinden will. Das kann so viel,
aber das ist m.E. nur recht knapp beschrieben wie man damit arbeiten
kann. :(
> Besuchen Sie die Gruppe unterhttp://groups.google.com/group/altnetde?hl=de, um weitere Optionen zu erhalten.

Stefan Lieser

unread,
May 16, 2010, 2:57:28 AM5/16/10
to altn...@googlegroups.com
Zu den Grundlagen von AutoMapper gibt's von mir noch einen Artikel in der vs1.


Grüße
Stefan

Henning

unread,
May 16, 2010, 8:38:28 AM5/16/10
to altnetde
hmm, wann und wo denn da? :)

Stefan Lieser

unread,
May 16, 2010, 8:51:48 AM5/16/10
to altn...@googlegroups.com
Heft 2.2010. Guckst du http://www.lieser-online.de/autor/

Viele Grüße
Stefan Lieser
--
http://lieser-online.de
Reply all
Reply to author
Forward
0 new messages