static void Main(string[] args) { using (MyDbContext dbc = new MyDbContext()) { dbc.Database.Log = (sql) => { Console.WriteLine(sql); }; DateTime dateTime = DateTime.Now; ForwardStatisticalResult result = new ForwardStatisticalResult(); IQueryable <ForwardEntity> forwards = dbc.GetAll <ForwardEntity>().Where(f => SqlFunctions.DateDiff("day", dateTime, f.CreateTime) == 0); result.TotalBonus = forwards.Sum(f => f.Task.Bonus); result.TotalCount = forwards.LongCount(); } Console.ReadKey(); }
public async Task <ForwardStatisticalResult> GetMonthAsync(DateTime?dateTime) { using (MyDbContext dbc = new MyDbContext()) { ForwardStatisticalResult result = new ForwardStatisticalResult(); IQueryable <ForwardEntity> forwards = dbc.GetAll <ForwardEntity>().Where(f => SqlFunctions.DateDiff("month", dateTime, f.CreateTime) == 0); if (!await forwards.AnyAsync()) { result.TotalBonus = 0; result.TotalCount = 0; } else { result.TotalBonus = await forwards.SumAsync(f => f.Task.Bonus); result.TotalCount = await forwards.LongCountAsync(); } return(result); } }