我正在優化一個昂貴的查詢,并且預感問題的一部分是過早的客戶端評估。我已經四處搜索,但很難找到一個清晰的串列,其中列出了可以轉換為 EF Core 5 的 SQL 查詢的內容。這些是我特別想知道的操作:
.Where(entity => listOfInts.Contains(entity.Id))
.Where(entity => entity.SomeStringProp.Contains("SomeSubsString")
.Where(entity => entity.SomeNullableProp.HasValue)
我不是 SQL 專家,但我可以想象這些是可行的翻譯。我只是不知道 EF Core 5 是否像我希望的那樣聰明。任何指向這方面檔案的指標表示贊賞。
uj5u.com熱心網友回復:
EF Core 5 沒有自動客戶端評估(EF 在 3之前有)所以除非你在客戶端(通過或和它們的異步對應物)明確評估你的查詢應該被轉換成 SQL(最終投影除外)。AsEnumerableToList
此外,由于您正在嘗試確定查詢的性能 - 嘗試查看 EF 生成的 SQL。從 5.0 開始,您可以使用EntityFrameworkQueryableExtensions.ToQuery它來查看它(并且取決于資料庫 - 使用分析器或資料庫 pesific queeries/logs)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351598.html
標籤:sql-server 实体框架
上一篇:計算每人總計,不包括列中為0的行
