簡體   English   中英

網絡核心:表達式樹與動態 Linq 的速度/性能

[英]Net Core: Expression Trees Vs Dynamic Linq for Speed/Performance

我們公司想要構建一些可變的動態 linq 查詢。 我們正在詢問使用表達式樹或動態 Linq 之間的性能/速度差異? 一種方式是否比另一種方式具有更快的性能? 還是差異非常小且不相關/不明顯?

表達式樹: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/expression-trees/

動態 Linq: https://www.nuget.org/packages/System.Z7FB58B6115865084CA2Z0動態

背景:目前正在使用實體框架和 sql 數據庫實現一個通用存儲庫(不是我的電話,它的公司決定)。 存在一個通用“id”成員以將每個 class 匹配到通用存儲庫; 但是實際的表主鍵成員是表名+“id”

意識到做下面這樣的事情會導致數據庫表掃描和客戶端 memory 評估。 因此,必須通過整個通用存儲庫 go 並將 id 替換為每個通用 repo 方法的 table/class + id。 問題是使用表達式樹還是動態 linq。

嘗試使用計算機進行測試,但差異似乎很小/不同,其他應用程序在計算機后台運行。

public partial class Product: IEntity
{
    [NotMapped]
    public int Id { get => ProductId; set => ProductId= value; }
}

Net Core:實體框架中的通用存儲庫主 ID 鍵性能

好吧, Dynamic Linq是對表達式樹的抽象,或者更好地說,動態 Linq 最終將使用表達式樹。

您最好使用動態 linq 作為“高級”替代方案,但如果您對任務感到滿意,直接使用表達式樹會更快,因為您將刪除 1 個“層”代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM