用Linq to sql方式, 查询特定"日期"的sql datetime栏位资料, 时间处理?

Linq to sql在下where条件时, 好像无法像直接下SQL一样, 在Linq里先转成日期

cast([InvoiceDate] as date)) = '20230927'

因SQL栏位有时间, 在Linq里下CompareTo可能会有时间差

Organization.ExpirationDate.Value.CompareTo(checkDateEnd)>0
替代做法
#lambda
.Where(x=>((x.InvoiceDate.Value.Year==yyyy) && 
        x.InvoiceDate.Value.Month==mm) &&
        x.InvoiceDate.Value.Day==dd)
#转成SQL后
        AND ((CONVERT(NVarChar,DATEPART(Year, [InvoiceDate]))) = 2023) 
		AND ((CONVERT(NVarChar,DATEPART(Month, [InvoiceDate]))) = 9) 
		AND ((CONVERT(NVarChar,DATEPART(Day, [InvoiceDate]))) = 27)
#lambda 其他做法
                DateTime checkDateStart = DateTime.Parse($"{yyyy}/{mm}/{dd} 00:00:00.000");
                DateTime checkDateEnd = DateTime.Parse($"{yyyy}/{mm}/{dd} 23:59:59.998");
                
                       .Where(
                            x => (checkDate <= x.InvoiceDate.Value &&
                               checkDate >= x.InvoiceDate.Value)
                        )
EF做法: 
	var orders = db.Orders.Where(x => 
					SqlFunctions.DatePart("year", x.OrderDate) == 2020 
				 && SqlFunctions.DatePart("month", x.OrderDate) == 4
				 ).ToList();