【问题标题】:Asp.net Core Entity Framework Linq where query testing if two bools are equalAsp.net Core Entity Framework Linq where 查询测试两个布尔值是否相等
【发布时间】:2019-08-21 03:24:06
【问题描述】:

简单的问题,但似乎无法找到我正在寻找的答案。

我在检查 EF 查询的 where 子句中的两个布尔值时遇到错误。

我有这个:

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

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

但是,检查结果并没有正确处理。

我将 KeyValuePair.Value 设置为字符串“True”,然后将其转换为布尔值。

这是表中的内容:

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

如何编写此 where 子句,以便仅选择为“公司”列设置了“真”的记录?

【问题讨论】:

    标签: c# entity-framework linq entity-framework-core linq-to-entities


    【解决方案1】:

    据我所知,您似乎没有因为 Where 操作而设置过滤客户端引用:

    它应该看起来更像:

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

    如果您收到有关 IQueryable 与 IEnumerable 不匹配等的强制转换错误,请确保您的初始/早期过滤客户端设置没有使用 .ToList() 过早执行。

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2016-10-12
      • 1970-01-01
      相关资源
      最近更新 更多