【发布时间】:2021-03-02 09:22:10
【问题描述】:
RecordExpiration 是一个日期时间字段。我必须只显示未过期的活动记录。
var triggerEvents = ctx.CDB.Admin_FlexTriggerEvents.AsQueryable().Where(x => x.RecordID == RecordID)
.Select(x => new TriggerEvent
{
RecordID = x.RecordID,
FlexTriggerType_RecordID = x.FlexTriggerType_RecordID,
Condition = x.FlexTriggerType.Condition,
MergeData = x.FlexTriggerType.FlexTriggerEntityType.MergeData,
FlexTriggerEventNotifications = x.FlexTriggerEventNotifications,
FlexTriggerEventEmployeeMessages = x.FlexTriggerEventEmployeeMessages,
FlexTriggerEventNudgeEmails = x.FlexTriggerEventNudgeEmails,
FlexTriggerEventDataExchanges = x.FlexTriggerEventDataExchanges,
FlexTriggerEventCreateGroupComms = x.FlexTriggerEventCreateGroupComms,
Name = x.Name,
RecordExpiration = x.RecordExpiration
}).ToList();
不确定在哪里可以添加条件。今天之前的所有记录都可以进入过期记录。
【问题讨论】:
-
添加到 WHERE 条件:
x.RecordExpiration <= DateTime.Now。顺便说一句,您当前正在使用条件x => x.RecordID == RecordID,这将始终只返回一条记录 (=RecordID),而不是记录列表 -
@TheMixy - 我猜 RecordID 不是事件记录的 id,而是某些关系的 id。
-
阅读一些有关如何使用 linq docs.microsoft.com/en-us/dotnet/csharp/linq 的基础知识可能会有所帮助
-
@ChristophLütjen:可能是……Shenal 应该详细说明一下
标签: c# asp.net-mvc linq