linq 从表中没有记录的月份中获取日期

enyaitl3  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(143)

在我的ASP.NETMVC应用程序中,我从视图传递日期,然后从控制器中将其除以给定的日期Monthstart dateend Date
然后,从StartDateEndDate,我从数据库表中进行检查,以获取可用的数据。
Also, I want to get the dates that there are no records in the table that are given date ranges.
有办法让这些唱片上市吗?
这是我的代码,它获取日期范围,并从数据库中选择开始日期和结束日期的数据。

var startDate = new DateTime(attendanceVM.MonthYear.Year, attendanceVM.MonthYear.Month, 1);
var endDate = startDate.AddMonths(1).AddDays(-1);
int EmpId = int.Parse(((System.Security.Claims.ClaimsIdentity) User.Identity).FindFirst("UserId").Value);
IEnumerable < AttendanceResults > resutls = (from l in db.UserLog 
                                             where l.Emp_Id == EmpId && l.Login_Date >= startDate && l.Login_Date <= endDate 
                                             select new AttendanceResults {
                                                 Id = l.Id,
                                                 Date = l.Login_Date.ToString(),
                                                 Acc_Name = l.PC_User_Name,
                                                 PC_Name = l.PC_Name
                                                  
                                              }).ToList();
qgzx9mmu

qgzx9mmu1#

应使用Enumerable.Range创建一个范围

var range = Enumerable.Range(0, 1 + endDate.Subtract(startDate).Days).Select(dayOffset => startDate.AddDays(dayOffset));

则可以使用Except函数

var notInRange = range.Except(results.Select(r => r.login_Date))

顺便说一句,你应该检查错字,格式和命名符号的使用

相关问题