Asp.net Core Entity Framework Linq where query testing if two bools are equal

Asp.net Core Entity Framework Linq where query testing if two bools are equal

简单的问题,但似乎找不到我要找的答案。

我在 EF 查询的 where 子句中检查两个 bool 时出错。

我有这个:

filteredClients.Where(c => c.Company == Convert.ToBoolean(keyValuePair.Value));

clientFilters.Company 是一个可为空的布尔值,其中作为数据库中的实体,"Company" 是一个布尔值。

但是,检查结果未正确处理。

我设置了 KeyValuePair.Value 这是一个字符串 "True" 然后将它转换为布尔值。

这是 table 中的内容:

在执行查询后,我仍然得到我所有的记录,而不仅仅是 4。

如何编写此 where 子句,以便仅选择为列 "Company" 设置了 "true" 的记录?

据我所知,您似乎没有将 filteredClients 引用设置为 Where 操作的结果:

它应该看起来更像:

filteredClients = filteredClients.Where(c => c.Company == Convert.ToBooolean(keValuePair.Value));

如果您收到有关 IQueryable 不匹配 IEnumerable 等的转换错误,请确保 filteredClients 的 initial/earlier 设置未使用 .ToList().

过早执行