gpt4 book ai didi

c# - Linq 查询不获取记录

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:13 26 4
gpt4 key购买 nike

我需要从 SQL 表中获取一条记录,我可以在 SQL 查询中获取数据,但不能在 LINQ 中获取数据。

我的sql查询是:

select sum(datediff(Day,2018-04-31,2018-04-30)) as dd 
from lms03192018.dbo.LeaveRequestModels
where leaveTypeId = '1'
and requestUserId = '5dc64ba7-8cf8-45dd-80f2-a8700e7dad2e'
and FromDate = '2018-04-30'

它给了我结果:1。

我想要 LINQ 的相同结果,但我必须使用变量和 View 模型日期值而不是硬编码日期。以下是我尝试的代码:

var month = new DateTime (userInputDate.Year, userInputDate.Month , 1);
var last = month.AddMonths(1).AddDays(-1);
var nextmonth = month.AddMonths(1);

var diffMonthLeavesCount = leaveApprovedList
.Where(x => x.leaveTypeId == leaveTypeId
&& x.requestUserId == person.Id
&& x.FromDate.Month == userInputDate.Month
&& x.ToDate.Month == nextmonth.Month)
.Select(x => SqlMethods.DateDiffDay(last,x.FromDate))
.Sum();

最佳答案

我不知道为什么你的 c# 代码使用 Month 比较,我忽略它:

leaveApprovedList.Where(l => l.leaveTypeId = "1" &&
l.requestUserId == "5dc64ba7-8cf8-45dd-80f2-a8700e7dad2e" &&
l.FromDate == "2018-04-30")
.Select(d => ("2018-04-31" - "2018-04-30").TotalDays)
.Sum();

为了便于理解,我对日期进行了硬编码(用代码替换它们)。此外,您需要将它们替换为您的实际参数:person.Id、userInputDate..

关于c# - Linq 查询不获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49642726/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com