背景:我的數(shù)據(jù)庫中有一個表,用于記錄對各種 Web 服務的調(diào)用。每個日志條目都由一個 GUID (CorrelationID) 鏈接,該 GUID 鏈接特定 Web 請求的所有日志條目。在日志中搜索特定數(shù)據(jù)(例如人名)時,我可能會得到一個包含該信息的日志條目,但我想顯示與同一請求相關(guān)的所有日志條目。目前:為了在 SQL 中獲得所需的結(jié)果,我使用了這個查詢:SELECT * FROM Logging WHERE CorrelationId IN (SELECT DISTINCT CorrelationId FROM Logging WHERE Message like '%fred%') ORDER BY Datetime問題:我想將此查詢轉(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();我無法計算出添加該IN部分的正確語法。我已經(jīng)關(guān)注了類似問題的其他 SO 答案,但仍然無法讓它適用于我的特定場景。
1 回答

慕容森
TA貢獻1853條經(jīng)驗 獲得超18個贊
做這樣的工作:
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)注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消