Ich habe 2 Entity Framework-Abfragen, die fast identisch sind außer der Lambda für 2 Eigenschaften; Ort und DateTime in der Select()
Methode.Ist es möglich, ein Lambda in Linq zu Entities zu parametrieren, wählen Sie
Ich habe versucht, eine Erweiterungsmethode zu schaffen, die wählen zu teilen, die ohne die func param funktioniert, aber das löst eine Ausnahme dann verwende ich den Standort param:
public static IQueryable<DashboardItem> SelectDashboardItem(this IQueryable<Job> query,
string direction,
Func<Job, MeetingDetail> location)
{
return query
.Select(j => new DashboardItem()
{
JobId = j.Id,
Direction = direction,
CustomerName = j.Driver.Name,
Vehicle = j.Vehicle,
// This works without using the func
Location = location(j).MeetingLocation.Name,
DateTime = location(j).DateTime,
});
}
ich seine Fehlermeldung:
Der LINQ-Ausdrucksknotentyp 'Invoke' wird in LINQ to Entities nicht unterstützt.
benutzt Sorry vielleicht hat meine lange Frage Verwirrung verursacht, ist in der .Select-Methode, ' Location 'und' DateTime', die abhängig von der Richtung entweder 'j.Return' oder' j.Departure' verwenden müssen. Daher versuche ich, sie auf eine Erweiterungsmethode zu verschieben. –
Überprüfen Sie die letzte Bearbeitung und die zweite Syntax 't haben einen Compiler praktisch, aber so etwas ist eine einfachere Möglichkeit, dies zu erreichen. –
Warum ist das downvoted? –