私はしばらくこの上に私の頭を掻いてきました。私が拡張メソッドを作成して、Dateの項目のリストをグループ化すると、可能なグループ化を変更して、結果をDay、WeekまたはMonthでグループ化できるようにします。LINQ to SQL - 日/週/月別グループ
私は以下を思い付いたが、私は次のエラーを取得しておいてください。
へのサポートの翻訳を持っていませんメソッド 'System.ObjectのDynamicInvoke(System.Objectの[])は、' SQL
方法:私はエラーの原因となっているクエリ内のFuncの使用を想定してい
public static IQueryable<IGrouping<MonthDateGroup, T>> GroupByDate<T>(
this IQueryable<T> items,
DateGroupFrequency grouping,
Expression<Func<T, DateTime?>> func)
{
var selector = func.Compile();
IQueryable<IGrouping<MonthDateGroup, T>> grouped = null;
if (grouping == DateGroupFrequency.Daily)
{
grouped = from a in items
let date = selector(a).Value
group a by new MonthDateGroup
{
Day = date.Day, Month = date.Month, Year = date.Year
}
into g
select g;
}
//Rest of groupings...
は、それがこのようなコードを生成することが可能ですか?
P.S.私はまだのFuncの、および式のまわりで私の頭をラップしようとしている:)
SQL内で実行されるクエリが必要です。このクエリは、ジェネリックスとFuncパラメータを削除してクラスに結び付けると正常に動作しますが、複数のクエリに対して汎用サポートが必要で、パフォーマンス制約のためにSQLで実行する必要があります。私はクエリの仕事をするために必要な構文的な砂糖が足りないと思う。 – Mig
LinqをSQLに変更することが可能かどうかは確かではない。基本的にSQLが独自のビットを入れる場所そこ。これはグループ化タスクなので、あなたはそれをサーバー上で実行しようとしましたか?私は、同じ量のデータがまだ返されているので、パフォーマンスはおそらくSQL上で実行するのと同等であると思います。 –