Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq语句不考虑时间_C#_Linq_Caml - Fatal编程技术网

C# Linq语句不考虑时间

C# Linq语句不考虑时间,c#,linq,caml,C#,Linq,Caml,我想从SharePoint中的列表中获取所有项目,但非常特定的情况除外。目前,我使用CAML查询获取所有内容,然后使用LINQ WHERE语句将它们从列表中删除。暂挂字段是从SharePoint中提取的日期,基本上是到期日期,而结束字段是一个简单的文本字段,用户可以向其中添加结束信息。如果暂挂日期/时间早于当前日期/时间,并且关闭字段没有inputnull,我希望将它们排除在查询之外 我无法使用纯CAML查询获得我想要的结果,所以我获取了所有内容,然后尝试使用LINQ after对其进行过滤。

我想从SharePoint中的列表中获取所有项目,但非常特定的情况除外。目前,我使用CAML查询获取所有内容,然后使用LINQ WHERE语句将它们从列表中删除。暂挂字段是从SharePoint中提取的日期,基本上是到期日期,而结束字段是一个简单的文本字段,用户可以向其中添加结束信息。如果暂挂日期/时间早于当前日期/时间,并且关闭字段没有inputnull,我希望将它们排除在查询之外

我无法使用纯CAML查询获得我想要的结果,所以我获取了所有内容,然后尝试使用LINQ after对其进行过滤。 CAML查询:

LINQ我想在CAML查询中做什么:

.Wherex=>!x、 悬念 我的linq查询没有考虑时间,只考虑日期。如果我运行查询时,有一个任务的暂停日期是今天,但时间是今天早些时候,它仍然显示在我的结果中

完整的代码块我的XML正在剥离。。但您可以看到上面的查询:

//获取行动项目

var query = new CamlQuery() { ViewXml = "<View><Query><OrderBy><FieldRef Name='Suspense' /></OrderBy></Query></View>" };
var actionItems = actionsList.GetItems(query);
context.Load(actionItems);
context.ExecuteQuery();
actions = actionItems.AsEnumerable()
            .Select(x => new Models.Action()
            {
              Id = x.Id,
              ItemNum = ListItemExt.GetInt32(x, "ID"),
              WhoLead = ListItemExt.GetUser(x, "Who_x0020_L_x002d_Lead"),
              WhoSupport = ListItemExt.GetUser(x, "Who_x0020_S_x002d_Spt"),
              What = ListItemExt.GetString(x, "Title"),
              Suspense = ListItemExt.GetDateTime(x, "Suspense"),
              Closure = ListItemExt.GetString(x, "Closure")
            }).Where(x => !(x.Suspense < DateTime.Now && x.Closure != null)).ToList();
    lastModified = actionsList.LastItemModifiedDate;
}

return Json(new { Actions = actions, LastModified = lastModified}, JsonRequestBehavior.AllowGet);

编辑:我发现我的暂记日期来自UTC格式的Sharepoint,而我的c DateTime.Now是本地的。这是否会导致该问题?

Sharepoint CSOM字段显示为UTC。我用的是DateTime。现在,切换到DateTime.UtcNow解决了我的问题。谢谢@Henk

Sharepoint CSOM字段以UTC的形式出现。我用的是DateTime。现在,切换到DateTime.UtcNow解决了我的问题。谢谢@Henk

你确定悬念是一个完整的日期时间字段,而不仅仅是日期吗?返回的值是UTC时间还是本地时间?您可能需要更改悬念是日期和时间。它来自SharePoint,类似这样:Date041220190240,但我正在使用ListItemExt.GetDateTimex转换为DateTime,悬念如上。该函数将其转换为DateTime:将项[key]返回为DateTime?悬念的格式为UTC,因此我需要将其转换为local?或针对DateTime的comapre。UtcNowThank you@Henk,这解决了我的问题。特别是使用DateTime.UtcNow进行比较。乔纳森,谢谢。你确定悬念是一个完整的日期时间字段,而不仅仅是日期吗?返回的值是UTC时间还是本地时间?您可能需要更改悬念是日期和时间。它来自SharePoint,类似这样:Date041220190240,但我正在使用ListItemExt.GetDateTimex转换为DateTime,悬念如上。该函数将其转换为DateTime:将项[key]返回为DateTime?悬念的格式为UTC,因此我需要将其转换为local?或针对DateTime的comapre。UtcNowThank you@Henk,这解决了我的问题。特别是使用DateTime.UtcNow进行比较。乔纳森,也谢谢你。