gpt4 book ai didi

linq - 查询 SharePoint OData 服务时在 LINQ 中使用日期比较

转载 作者:行者123 更新时间:2023-12-04 06:16:14 25 4
gpt4 key购买 nike

回答:去下面找到我对这个问题的答案。

我正在尝试使用 LINQ 从 ASP.NET MVC 3 项目中使用 SharePoint 2010 OData。我使用带有 Razor View 引擎 (VS 2010) 的 ASP.NET MVC 3 项目模板创建了一个默认项目。我添加了一个指向我的 SharePoint 2010 网站的服务引用。

在我的 HomeController 的 Index 方法(这只是一个测试项目)中,我创建了一个变量来保存上下文并将上下文变量的 Credentials 属性设置为当前的默认凭据。

像下面这样的链接查询工作正常,我可以使用创建的变量来访问任何数据:

var query = from a in context.Alerts
select a;

此查询只是从 SharePoint 站点中名为“警报”的列表中获取所有公告。此列表包含标题、内容、开始日期和到期日期字段。

当我将查询更改为以下内容时,我没有得到预期的结果:
var query = from a in context.Alerts
where (a.Begins < DateTime.Now)
select a;

此查询忽略日期的时间部分。例如,如果 a.Begins 包含昨天的日期时间,则查询返回 AlertItem。另一方面,如果 a.Begins 包含具有当前日期(但更早的时间)的日期时间,则比较返回 false(并且 a.Begins == DateTime.Now 返回 true)。

如果我执行以下操作,第二个 LINQ 查询将按预期工作:
var query = (from a in context.Alerts
select a).ToList();
var query2 = from q in query
where (q.Begins < DateTime.Now)
select q;

我错过了什么?

最佳答案

对于需要包含 DateTime 的时间元素的 Linq to SharePoint 查询,您可以使用 TimeOfDay。

var next_slots = (from s in dc.HRDates
where
s.StartTime.HasValue &&
s.StartTime.Value.Date == appt.Value.Date &&
s.StartTime.Value.TimeOfDay == appt.Value.TimeOfDay
...

关于linq - 查询 SharePoint OData 服务时在 LINQ 中使用日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205205/

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