Daten-Projektion in Entity Framework und Automapper

Will ich mit AutoMapper zu konstruieren, die ein ViewModel (Abflachung - Daten-Projektion) für die Verwendung in einer ASP.net MVC-app.

var tmp = from x in db.Mailings select Mapper.Map<Mailing, MailingViewModel>(x);
return View(tmp.ToList());

Natürlich, wenn ich versuche das Beispiel oben, bekomme ich das EF-Fehler "LINQ to Entities erkennt nicht die Methode ... Methode, und diese Methode kann nicht übersetzt werden, in einen laden zu Ausdruck."

Ich weiß, es ist möglich zu verschieben .ToList() vor dem Automapper macht seiner Magie, aber dann Hole ich meine alle Felder aus der Db (und ich brauche nur 3 der 20 Felder)

Ist es möglich, Sie in eine saubere Art und Weise. Sauber = Nicht alle Felder abgerufen werden von der DB, sondern nur die notwendigen Felder für das ViewModel. Ist es möglich in der Automapper? Oder vielleicht eine andere Bibliothek? (ohne es manuell zu tun 😉 )

  • Es ist ziemlich "gefährlich" zu verwenden AutoMapper in Projektionen, weil, wenn Sie haben eine Abflachung operation in der Karte ( target.Prop1 = source.Ref1.Prop1 ), könnten Sie eine N+1-Szenario.
InformationsquelleAutor Tom Deleu | 2011-03-22
Schreibe einen Kommentar