乙個Linq效率(智慧型程度)的測試

2021-09-22 06:42:58 字數 649 閱讀 4460

今天做了一次linq的測試,**如下:

new dataclasses1datacontext();

in db.blogs

這是個較為複雜的查詢,包含兩個跨表聯合,更重要的是,最終需要的是count,而並不是整個blog列表,考驗的是linq的智慧型程度。

用sql profile分析,得到對應的sql是:

'select count(*) as [value]

', n

'@p0 nvarchar(4),@p1 nvarchar(2)

',  @p0

= n '

生活頻道

',  @p1

= n '默契'

從上面的sql可以看出,linq對**的分析相當到位,最終著眼於count,這應該也是得益於lazy load。而多表聯合查詢(對於channel表和blogclass表)也做得相當好。從這乙個查詢應該可以說:linq的智慧型度已經相當高了,linq已經遠遠超出了傻乎乎拼sql的水平,值得一試!

雞蛋裡面挑骨頭的是,blogclass 其實和channel有外來鍵聯絡的,其實有了blogclass的限制,channel就可以不需要了,這是**中故意加入的乙個小bug,可惜linq沒有自動處理這個bug的能力,還是進行了兩次查詢,是不是期望太高了?呵呵。

LvClass 的乙個效率

前幾天,聽到了乙個客戶的抱怨 他編寫了乙個labview程式,每次開啟主程式就要花費幾分鐘的時間,這有點令他忍無可忍。我沒有見過他的源程式,不過據幫他檢查過程式的同事講,他的問題很可能是使用了大量的lvclass造成的。在他的專案中,包含有上百個類 lvclass 我以前也聽說過lvclass在效率...

較為複雜的乙個linq語句

作為乙個初學者,這個句子花了我好大的力氣才寫出來,寫出來是次要的,重要的是又學到了一點新的用法。var query from gb in objectcontext.goodsclose back where gb.s sf comid gb.s month month join gw in 類似子...

Linq 時間引數的乙個坑

背景 查詢某個字段大於系統時間的資料 兩種寫法 1 datatime now datetime.now var result dbcontext.table1.created now 2 var result dbcontext.table1.created datetime.now 兩種結果 1中...