背景:我的數(shù)據(jù)庫(kù)中有一個(gè)表,用于記錄對(duì)各種 Web 服務(wù)的調(diào)用。每個(gè)日志條目都由一個(gè) GUID (CorrelationID) 鏈接,該 GUID 鏈接特定 Web 請(qǐng)求的所有日志條目。在日志中搜索特定數(shù)據(jù)(例如人名)時(shí),我可能會(huì)得到一個(gè)包含該信息的日志條目,但我想顯示與同一請(qǐng)求相關(guān)的所有日志條目。目前:為了在 SQL 中獲得所需的結(jié)果,我使用了這個(gè)查詢:SELECT * FROM Logging WHERE CorrelationId IN (SELECT DISTINCT CorrelationId FROM Logging WHERE Message like '%fred%') ORDER BY Datetime問(wèn)題:我想將此查詢轉(zhuǎn)換為 LINQ to Entities。我現(xiàn)在只有主要選擇var records = db.Loggings.Where(x => x.Datetime >= fromDate && x.Datetime < toDate)
.Where(x => x.Message.Contains("fred"))
.OrderBy(x => x.Datetime).AsQueryable();我無(wú)法計(jì)算出添加該IN部分的正確語(yǔ)法。我已經(jīng)關(guān)注了類似問(wèn)題的其他 SO 答案,但仍然無(wú)法讓它適用于我的特定場(chǎng)景。
1 回答

慕容森
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
做這樣的工作:
var subQuery = records.Where(x => x.Datetime >= fromDate && x.Datetime < toDate && x.Message.Contains("fred")).Select(x => x.CorrelationID).Distinct();
var result = records.Where(x => subQuery.Contains(x.CorrelationID)).OrderBy(x => x.Datetime).AsQueryable();
- 1 回答
- 0 關(guān)注
- 97 瀏覽
添加回答
舉報(bào)
0/150
提交
取消