最近做一個實習工作,上頭交代我寫系統日志的操作,當時上頭說用ado.net的Ef(基於數據庫的實體模型)開發。 主要一個函數 :
public List SelectBy(Expression> wherelamdba)
{ using (LogEntities lg = new LogEntities())
{ return lg.vUserLogs.Where(wherelamdba).ToList(); }}
但是上頭看了一下我寫的代碼,說我用lamdba表示作為參數,執行效率低!復雜!!主要:
(1)(LogEntities是實體模型的上下文的類,有兩個dbset表),在使用中(l= lg.vUserLogs.Where(wherelamdba).ToList();)l和lg(也就是dbset)不釋放;
(2)委托是反射嗎?當時我就說lamdba不是委托嗎?他說委托本質是反射;
我現在還是剛學c#沒多久,幫忙解惑一下。謝謝!
效率低不低 要拿出數據來說明的
lmada表達式的效率比反射高出幾個數量級
相信看過老趙的文章的 都會明白的
第1個問題,竟然會說出這樣的疑問,你的所謂“上頭”根本就是在不懂裝懂,問題就曝露了他的無知