私はしばらくの間、これについて頭を悩ませてきました。拡張メソッドを作成して、アイテムのリストを日付でグループ化するとします。可能なグループ化を変更して、結果を日、週、または月でグループ化できるようにします。
以下を思いつきましたが、次のエラーが引き続き発生します。
メソッド 'System.Object DynamicInvoke(System.Object[])' は SQL への変換をサポートしていません
メソッド:
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...
クエリ内での Func の使用がエラーの原因であると想定していますが、このようなコードを生成することは可能ですか?
PS私はまだFuncと式に頭を悩ませようとしています:)