3 回答

TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊
這是 3.1 中修復(fù)的已知錯誤。由于查詢管道重寫后的所有回歸,3.0 幾乎無法使用。
我建議關(guān)注 ef core 的 github 上的問題跟蹤器。
https://github.com/dotnet/efcore/pull/17599

TA貢獻(xiàn)1878條經(jīng)驗 獲得超4個贊
從 2.2 遷移到 EF Core 3.0 時,我遇到了同樣的問題。我之前已經(jīng)配置了 ef 以在客戶端評估時拋出錯誤,并且工作正常。所以我確信這是 3.0 的一個新問題,是他們重寫 linq 引擎時引入的。
將其轉(zhuǎn)換為 IEnumerable 或 List 對我也適用,感謝您的提示!

TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
當(dāng)您轉(zhuǎn)換為 IEnumerable() 或 List() 時,EFCore 會強(qiáng)制客戶端評估,這就是它起作用的原因。(但以性能成本為代價)
“在版本 3.0 之前,Entity Framework Core 支持查詢中任意位置的客戶端評估”
3.0 之前的 EFCore 版本還允許您在混合服務(wù)器和客戶端評估時添加警告。
然后 EF 更改了策略,不允許混合服務(wù)器和客戶端評估,因此不會發(fā)生意外的性能問題。不過,情況比這要復(fù)雜一些,因此這里是EFCore 3.1 重大更改的鏈接*所有其他版本也可以在此處以及左側(cè)菜單導(dǎo)航中找到,包括 3.0。
- 3 回答
- 0 關(guān)注
- 188 瀏覽
添加回答
舉報