我正在使用.NET和实体框架.我希望按照没有时间部分的日期对表进行分组.
我上课了:
public sealed class QueryItem {
public int Year { get; set; }
public int Month { get; set; }
public int Day { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和方法(我正在使用BLToolkit,如果你想知道什么是DbManager):
protected override IQueryable<QueryItem> InitiateQuery() {
return
from query in DbManager.GetTable<SomeTableModel>()
group query by new { Year = query.CreationDate.Year, Month = query.CreationDate.Month, Day = query.CreationDate.Day }
into list1
select new QueryItem {Year = list1.Key.Year, Month = list1.Key.Month, Day = list1.Key.Day};
}
Run Code Online (Sandbox Code Playgroud)
在这个方法中,linq翻译成了这个SQL查询:
SELECT
[query].[CreationDate]
FROM
[SomeDatabase.SomeTable] [query]
GROUP BY
DatePart(Year, [query].[CreationDate]), …Run Code Online (Sandbox Code Playgroud)