Ich arbeite derzeit mit ASP.NET Core und ich möchte mit Automapper einen Linq Ausdruck zuordnen. Die Mapping-Anweisung lautet:Asp.Net Core Automapper LINQ Ausdruck
var targetConditions = _mapper.Map<Expression<Func<Entity, bool>>>(filter);
wo Filter ein formaler Parameter in Form ist:
(Expression<Func<EntityDTO, bool>> filter
im Mapping-Profil habe ich die folgende Karte erstellt:
CreateMap<Expression<Func<EntityDTO, bool>>, Expression<Func<Entity, bool>>>();
I verwende ein generisches Repository-Muster mit EF. Ich möchte eine Liste von DTOs erhalten, die natürlich von den DTO-Feldern von meinem Controller gefiltert werden. Dann muss ich vom DTO-Filter in Entitätsfilter in der Business-Schicht konvertieren, bevor ich eine Abfrage mit Linq für EF durchführe.
Auch wenn der Ausdruck von EntityDTO in Entity konvertiert wird, sind die Parameter in den Lambda-Ausdrücken nicht korrekt, was zu Fehlern führt, wenn ich ihn mit EF weiter verwende. Irgendeine Idee, wie das gemacht werden kann?
Haben Sie eine Karte für 'CreateMap();'? –
Win
@Win. Ja, ich habe es – alexvilla
Wie verwenden Sie es? Könnten Sie [mcve] (https://stackoverflow.com/help/mcve) erstellen? – Win