c# lambda count too slow 的眉角

1. select count(*) table < 1ms

2. table.Count() > 5s

這是今天驚人的發現,後來上網查了一下才發現..
原來 2. 的 lambda,因為不是單純的處理 db 資料,他也是可以處理 c# 裡的類別,
所以 1 不等於 2 的寫法

以下提供兩種解法
a. 改用 sqlCommamd 來處理
b. 加一個 sql 欄位做判斷,讓 lambda 的 count 跑出來是 sql 語法,XD, table.Count(x => x.age > 0)

雖然 lambda 寫起來比較簡潔,但這個時候一點都不簡潔,為什麼沒有先 sql 判斷,再 C# 的判斷 .zZ。

補充:
改掉 count(*) 這個耗資源

留言