我一直在摸索着我的这一段时间。假设我做了扩展方法,按日期对项目列表进行分组,以便更改可能的分组,以便可以按日,周或月分组结果。LINQ to SQL - 按日/周/月集团
我想出了下面,但我不断收到以下错误:
方法 '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...
我假设使用的查询中的函数功能的原因造成的错误,是有可能产生这样的代码?
P.S.我仍然在试图总结我的周围Func键的头,和表达式:)
我需要在SQL中执行查询。如果我删除泛型和Func参数并将其与类绑定,此查询工作正常,但我需要对多个查询进行通用支持,并且由于性能限制,它必须在SQL中执行。我假设我缺少使查询工作所需的语法糖 – Mig 2011-01-13 12:56:00