。在哪里包含特定值或Count == 0,其中包含无效项目?

问题描述 投票:0回答:1

在我的代码中,我有以下一行:

errorLog = errorLog.Where(x =>x.ErrorStatus.Count == 0 || x.ErrorStatus.Any(y => y.ErrorStatusesId == 1)).ToList()

[errorLogList<ErrorLog>ErrorStatusList<Status>,其中可能的值是:

  1. 没有项目(相当于“打开”),从不等于null,没有项目
  2. 打开(值= 1)
  3. 已关闭(值= 2)
  4. 待处理(值= 3)

重要的是,应该将项2、3和4显式设置为这些状态,并且数据库中的默认值是“无项”,这意味着未分配任何状态,并且与“打开”相同。

所以这里的目的是,我的代码行将捕获所有以前没有为.ErrorStatus分配/存储的值的结果,或者仅捕获显式设置为1(打开)的结果。

问题是它也正在捕获状态为“待处理”(3)和“打开”(1)的项目。

我在这里做错了什么?

编辑:我刚刚注意到Any子句存在虚假问题。您可能会认为它会进行历史搜索,只是错误记录最多只有一个状态条目(这是有意而明确地执行的,以防止出现历史记录)。

c# linq entity-framework-core asp.net-core-2.1
1个回答
0
投票

将项目添加到错误日志列表后,ErrorStatusesId是否可以更改?

© www.soinside.com 2019 - 2024. All rights reserved.