我在 LINQPad 中創建了如下所示的 linq 查詢。這在使用 EF Core 3.0 時失敗。我知道有關 Group By 的問題以及當無法進行轉換而不是撤回所有資料并在客戶端進行轉換時 EF Core 失敗的原因。我的問題是,到目前為止,我還沒有弄清楚是否可以做我想做的事情來運行我的查詢。
我的表有一個 CorrelationId,它僅對相關記錄具有相同的值。我需要創建一個查詢,它只回傳 CorrelationId 只存在一次的記錄。如果 CorrelationId 出現不止一次,則表明存在相關記錄,并且不應回傳這些記錄。查詢必須在服務器上運行,因此無法取回所有資料。
這是我的 Linq 查詢失敗并顯示“...無法翻譯。要么以可以翻譯的形式重寫查詢...”錯誤。
from x in History
where
(
from d in History
group d by new {d.CorrelationId} into g
where g.Count() == 1
select new {Id = g.Key.CorrelationId}
).Contains(new { Id = x.CorrelationId })
select new {Id = x.Id, FileName = x.FileName}
uj5u.com熱心網友回復:
嘗試使用Any代替Contains
.Any(y => y.Id == x.CorrelationId)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/381075.html
上一篇:標量函式是不確定的
