Ich versuche, eine LinQ-Anfrage mit einer Gruppe von, wo ein Parameter ist parametrisierbar durch einen Ausdruck ((Expression<Func<CompanyModel,TKey>> myGroupingProperty
) und der andere ist hart codiert. Aber selbst wenn mein Code kompiliert wird, bekomme ich einen Fehler, dass linq lambdas nicht unterstützt. Hätten Sie eine Idee, wie Sie diese Anfrage machen? HierLinq parametrisierbare Gruppe von mit 2 Eigenschaften
ist das Codebeispiel:
public List<timelineResult> getTimelinebyCompany<TKey>(Expression<Func<CompanyModel,TKey>> myGroupingProperty, Filter item)
{
int cntToBeSureThatTheQueryExecuteAtLeastOneTime = 0;
List<timelineResult> toto = new List<timelineResult>();
using (var db = new fintechDbContext())
{
while (cntToBeSureThatTheQueryExecuteAtLeastOneTime == 0)
{
toto = (from p in db.companyDBSET
select p).GroupBy(p=> new {p.Founded_Year, myGroupingProperty})
.Select(o => new timelineResult{ year = o.Key.Founded_Year, cluster = o.myGroupingProperty.ToString(), count = o.Count() })
.OrderBy(o => o.year).ToList();
cntToBeSureThatTheQueryExecuteAtLeastOneTime++;
}
}
return toto;
}
Was * genau * ist die Fehlermeldung? –
Es wäre auch hilfreich, ein [mcve] anstatt nur ein Snippet bereitzustellen. –
Das kann nicht funktionieren, Sie verwenden in einem Lambda, Sie versuchen, etwas wie zu tun: 'p => neu {p.Founded_Year, p2 => p2.PropertyToGroupBy}' mit geschachtelten Lambdas. Wahrscheinlich müssen Sie dazu Expression-Bäume verwenden oder den vollständigen Parameter p => new {p.Founded_Year, myGroupingProperty} 'als Parameter angeben und nicht nur einen Teil des Schlüssels (eine Klasse/Struktur erstellen, damit Sie nicht t muss mit einem anonymen Typ für den Schlüssel arbeiten). –