1
私は、パラメータが式((Expression<Func<CompanyModel,TKey>> myGroupingProperty
)によってパラメータ化可能で、もう1つがハードコードされているグループでLinQリクエストを実行しようとしています。しかし、私のコードをコンパイルしても、linqがlambdaをサポートしていないというエラーが出ます。この要求をどうやって行うか考えていますか?ここでLinqの2つのプロパティでパラメータ化可能なグループ
は、コードサンプルです:
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;
}
*正確に*エラーメッセージは何ですか? –
単なるスニペットではなく[mcve]を提供することも役立ちます。 –
これはうまくいきません。ラムダで使用しています。ネストされたラムダを使って 'p => new {p.Founded_Year、p2 => p2.PropertyToGroupBy}'のようなことをしようとしています。おそらく、これを行うには式ツリーを使用するか、キーの一部だけではなく、完全な 'p => new {p.Founded_Year、myGroupingProperty}'をパラメータとして提供する必要があります(クラス/キーの匿名型で作業する必要があります)。 –