在我的代码中,我有以下一行:
errorLog = errorLog.Where(x =>x.ErrorStatus.Count == 0 || x.ErrorStatus.Any(y => y.ErrorStatusesId == 1)).ToList()
[errorLog
是List<ErrorLog>
,ErrorStatus
是List<Status>
,其中可能的值是:
重要的是,应该将项2、3和4显式设置为这些状态,并且数据库中的默认值是“无项”,这意味着未分配任何状态,并且与“打开”相同。
所以这里的目的是,我的代码行将捕获所有以前没有为.ErrorStatus
分配/存储的值的结果,或者仅捕获显式设置为1(打开)的结果。
问题是它也正在捕获状态为“待处理”(3)和“打开”(1)的项目。
我在这里做错了什么?
编辑:我刚刚注意到Any子句存在虚假问题。您可能会认为它会进行历史搜索,只是错误记录最多只有一个状态条目(这是有意而明确地执行的,以防止出现历史记录)。
将项目添加到错误日志列表后,ErrorStatusesId是否可以更改?