我有以下查询;
foreach (Item sourceChild in source.Axes.GetDescendants()
.OrderBy(x => x["date-optional-1"])
.ThenBy(x => x["date-optional-2"])
.Reverse())
{..}
date-optional-1和2,如名称所示,是可选的,因此不保证提交。 但如果是,则1不优先于2。 我需要补充一点,如果没有提交1,那么我只需要今天和前方的项目(这是一个事件日期)。我将如何在Where()?
中进行此操作答案 0 :(得分:2)
foreach (Item sourceChild in source.Axes.GetDescendants()
.Where(x => DateUtil.ParseDateTime(x["date-optional-1"], DateTime.MaxValue) >= DateTime.UtcNow.Date)
.OrderBy(x => x["date-optional-1"])
.ThenBy(x => x["date-optional-2"])
.Reverse())
{..}
DateUtil.ParseDateTime转换' date-optional-1'的字符串值。将字段转换为DateTime。
Sitecore以UTC格式存储日期,因此我们将DateTime值与DateTime.UtcNow.Date进行比较。这仅包括带有' date-optional-1'值> =今天在结果集中。
DateTime.MaxValue作为第二个参数传递给DateUtil.ParseDateTime,以便没有' date-optional-1'值包含在结果集中。