EntityFramework Linq 按年月统计查询
2016-09-20 17:23
316 查看
Expression<Func<Operator, bool>> wh = c => c.DimissionId != null;
DateTime dtValueStart = DateTime.MinValue;
DateTime dtValueEnd = DateTime.MinValue;
if (!string.IsNullOrEmpty(startdate) && DateTime.TryParse(startdate, out dtValueStart))
{
//重置为当月第一天
dtValueStart = new DateTime(dtValueStart.Year, dtValueStart.Month, 1);
wh = wh.And(c => DbFunctions.TruncateTime(c.DimissionDate) >= DbFunctions.TruncateTime(dtValueStart));
}
if (!string.IsNullOrEmpty(enddate) && DateTime.TryParse(enddate, out dtValueEnd))
{
//重置为当月最后一天
dtValueEnd = new DateTime(dtValueEnd.Year, dtValueEnd.Month, 1).AddMonths(1).AddDays(-1);
wh = wh.And(c => DbFunctions.TruncateTime(c.DimissionDate) <= DbFunctions.TruncateTime(dtValueEnd));
}
var result = operatorService.GetByFilter(wh).GroupBy(c => new { c.DimissionDate.Value.Year, c.DimissionDate.Value.Month }).Select(g => new DimissionYearMonthlyVM
{
Year = g.Key.Year,
Month = g.Key.Month,
DimissionQty = g.Count()
}).OrderBy(c => new { c.Year, c.Month }).ToList();
1、日期查询条件需要使用DbFunctions.TruncateTime
转换一下
2、统计查询取值字段按照GroupBy中的字段
DateTime dtValueStart = DateTime.MinValue;
DateTime dtValueEnd = DateTime.MinValue;
if (!string.IsNullOrEmpty(startdate) && DateTime.TryParse(startdate, out dtValueStart))
{
//重置为当月第一天
dtValueStart = new DateTime(dtValueStart.Year, dtValueStart.Month, 1);
wh = wh.And(c => DbFunctions.TruncateTime(c.DimissionDate) >= DbFunctions.TruncateTime(dtValueStart));
}
if (!string.IsNullOrEmpty(enddate) && DateTime.TryParse(enddate, out dtValueEnd))
{
//重置为当月最后一天
dtValueEnd = new DateTime(dtValueEnd.Year, dtValueEnd.Month, 1).AddMonths(1).AddDays(-1);
wh = wh.And(c => DbFunctions.TruncateTime(c.DimissionDate) <= DbFunctions.TruncateTime(dtValueEnd));
}
var result = operatorService.GetByFilter(wh).GroupBy(c => new { c.DimissionDate.Value.Year, c.DimissionDate.Value.Month }).Select(g => new DimissionYearMonthlyVM
{
Year = g.Key.Year,
Month = g.Key.Month,
DimissionQty = g.Count()
}).OrderBy(c => new { c.Year, c.Month }).ToList();
1、日期查询条件需要使用DbFunctions.TruncateTime
转换一下
2、统计查询取值字段按照GroupBy中的字段
相关文章推荐
- EntityFramework linq 多条件查询,不定条件查询
- Entity framework lambda/ linq like 模糊查询
- 揭开Entity Framework LINQ查询的一点面纱
- EntityFramework Linq查询
- EntityFramework.Extended 实现Linq 动态查询和动态条件
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #3 -- LINQ-to-SQL、EntitySQL、查询产生器方法(Query builder)三种语法
- LINQ分组查询统计
- EntityFramework Core笔记:查询数据(3)
- ADO.Net Entity Framework Linq To Entities 语法功能汇编
- Entity Framework 的多条件组合查询和 LIKE 查询(Combination search and simulate LIKE search with Entity Framework)
- asp.net MVC + linq to Entity简单教程(四)linq to Entity查询中其它方法的使用
- linq to entity(两个entity的连接查询)
- ADO.NET Entity framework 与 LINQ TO SQL 中的功能的一些差别(一)
- Entity Framework Core 2.0 全局查询过滤器
- Entity Framework Core 2.0 全局查询过滤器
- LINQ分组查询统计
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- ADO.NET Entity Framework学习笔记 ESQL查询语句
- 【转】ADO.NET Entity Framework ESQL查询语句
- ADO.Net Entity Framework Linq To Entities 语法功能汇编