c# - 查询表的Linq扩展方法
问题描述
我有一个如下所示的表(它是一个审计表,包含来自不同表的数据)和其他一些列:我正在尝试从审计表中获取所有值,其中表名列包含具有顶部且 EntiryId 为 1007 的表和通知栏
Table Name EntityId
AllTOP 1007
ProductTOP 1007
ProductTOP 1008
ProductTOP 1007
UserRoleTOP 1007
UserRoleTOP 1008
UserRoleTOP 1007
RequestTypeTOP 1007
Notifications 1014
Notifications 1015
Notifications 1016
我在下面尝试过:
var logList = _dbcontext.Audits.Where(e => e.TableName.Contains("TOP") && e.EntityId == 1007.ToString()).ToList()
此查询为我提供了包含 top 的值的结果,但是当我尝试添加另一个条件以从通知中获取所有值时,我得到“枚举没有返回结果”。这是我的尝试
var logList = _dbcontext.Audits.Where(e => e.TableName.Contains("TOP") && e.EntityId == 1007.ToString() && e.TableName.Contains("Notifications")).ToList()
我的错误是什么?
解决方案
你可能正在寻找这个:
var logList = _dbcontext.Audits
.Where(e => (e.TableName.Contains("TOP") || e.TableName.Contains("Notifications"))
&& e.EntityId == 1007.ToString()).ToList()
列名应该用逻辑 OR (||) 而不是 AND (&&) 连接。这是假设EnitityId
条件应该存在,无论它是Top
还是Notifications
。
推荐阅读
- python - 在 Django 中使用对象管理器或游标对象调用存储过程-Raw SQL 查询哪个更好?
- android - 编译assimp android时找不到工具链文件:$ANDTOOLCHAIN
- linux - 用于根据创建日期删除文件夹的 Shell 脚本
- android - android studio 3.1.4 离线模式
- redux - redux 如何与一个简单的例子一起工作(不管反应)?
- python - Python:编译、重命名和移动
- apache-kafka - min.insync.replica 配置会影响 Kafka 生产者吞吐量吗?
- sonarqube - 如何使用 jacoco 在 hybris 到 sonarqube 中获得单元测试的代码覆盖率
- date - 如何编写带有时区但没有时间组件的 ISO 8601 日期
- php - PHP 扩展与 Ioncube 扩展冲突