c# - c#中比较bool和string
问题描述
我有一个搜索方法,我想搜索表中的布尔值。IsFallBack 是布尔型,在表中显示为真或假。
if (!string.IsNullOrEmpty(searchIsFallBack))
{
tableData = (IOrderedQueryable<TableData>)tableData.Where(m => m.IsFallBack.ToString() == searchIsFallBack);
}
当我尝试搜索程序时抛出异常:System.InvalidOperationException: '无法翻译 LINQ 表达式。
searchValue 是用户在搜索框中输入的值 如何比较布尔值和搜索值?
解决方案
如果我没记错的话,问题是 EF 不能翻译ToString()
。一种解决方案是将字符串转换为 bool(这也会提高性能,因为您将搜索本机 DB 类型,而不是对每一行执行转换):
if (!string.IsNullOrEmpty(searchIsFallBack))
{
tableData = (IOrderedQueryable<TableData>)tableData.Where(m =>
m.IsFallBack == (searchIsFallBack == "true"));
}
推荐阅读
- excel - 引用公式中的单元格地址/引用
- angular - Angular 自动完成功能似乎无法正常工作
- python - 在 django 中启动 celery task_monitor
- python - 如何停止/终止运行 python 脚本?(再次)
- python - Python:将大型数据框(1.2M 行)插入 Postgres 的问题
- java - 2.1.6 Spring Boot - Elasticsearch Healthcheck 失败
- angular - 使用 mqtt-ngx 通过 websocket 在 tls 中连接到代理
- r - 与微软团队的 slackr_upload 等效的 R 函数
- sql - 数字格式 SQL INSERT
- c# - 如果 5 分钟内没有记录任何内容,如何使进程崩溃