【发布时间】:2019-04-02 16:50:01
【问题描述】:
背景:
我的数据库中有一个表,用于记录对各种 Web 服务的调用。
每个日志条目都由一个 GUID (CorrelationID) 链接,该 GUID 链接特定 Web 请求的所有日志条目。
在日志中搜索特定数据(例如人名)时,我可能会得到一个包含该信息的日志条目,但我想显示与同一请求相关的所有日志条目。
目前:
为了在 SQL 中获得所需的结果,我使用了这个查询:
SELECT * FROM Logging WHERE CorrelationId IN (SELECT DISTINCT CorrelationId FROM Logging WHERE Message like '%fred%') ORDER BY Datetime
问题:
我想将此查询转换为 LINQ to Entities。
我现在只有主选择
var records = db.Loggings.Where(x => x.Datetime >= fromDate && x.Datetime < toDate)
.Where(x => x.Message.Contains("fred"))
.OrderBy(x => x.Datetime).AsQueryable();
我无法找出添加 IN 部分的正确语法。
我已关注其他类似问题的 SO 答案,但仍然无法使其适用于我的特定场景。
【问题讨论】:
-
LINQ subquery IN的可能重复
-
您是否尝试过进行两个不同的查询?
-
@Halhex 是的,我试过了,根据第一个查询的结果完成第二个查询非常慢。
-
您使用了两次记录(记录 = 记录)。实体数据库类似于 dbEntity.TableName
-
@Bandito 你能显示你尝试的代码吗?
标签: c# sql entity-framework linq