cra*_*020 1 c# linq asp.net asp.net-web-api
我有一个 LINQ 查询来查找过去 7 天的记录,效果很好。虽然如果我尝试使用相同的查询,但在过去 30 天内返回 0。谁能告诉我这是为什么?以及如何编辑查询以使其在过去 30 天内有效?
工作正常:
//calories burned working out over the last 7 days
public int CaloriesBurnedLast7Days
{
get
{
using (var db = new FitnessTrackerWebAPIContext())
{
int calsLast7Days = 0;
calsLast7Days = db.Workouts.Where(w => w.Date <= DateTime.Now.AddDays(-7) && w.UserID == ID).Sum(w => w.CaloriesBurned);
return calsLast7Days;
}
}
}
Run Code Online (Sandbox Code Playgroud)
不能正常工作:
//calories burned working out over the last 30 days
public int CaloriesBurnedLast30Days
{
get
{
using (var db = new FitnessTrackerWebAPIContext())
{
int calsLast30Days = 0;
calsLast30Days = db.Workouts.Where(w => w.Date <= DateTime.Now.AddDays(-30) && w.UserID == ID).Sum(w => w.CaloriesBurned);
return calsLast30Days;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个 LINQ 查询来查找过去 7 天的记录,效果很好
不,您有一个查询返回超过 7 天前燃烧的卡路里(即 8、9、10 等)。您构建查询的方式,正确的方法是w.Date >= DateTime.Now.AddDays(-n)获取最后n几天。