>>> 來看一看,瞧一瞧!
上代碼:
看生成的SQL語句:
1. Entity Framework生成的SQL:
一個TOP,三個FROM。
2. LINQ to SQL生成的SQL:
無TOP,兩個FROM。
兩者的差距一目了然。
>>> 再來看一個:
将上面代碼中Where的查詢條件改為常量,即Where(coder => coder.Age > 20),見下圖:
然後看看生成的SQL。
2. LINQ to SQL生成的SQL與之前的一樣。
Entity Framework考慮了多資料庫支援、存儲過程支援,卻忽視了這個地方。
目前看來,如果用Entity Framework 4,并在乎性能,隻有兩個選擇:1. 不用LINQ to Entities,自己寫SQL或存儲過程;2. 自己寫個Entity Framework ADO.NET provider for SQL Server 。
更新:從執行計劃來看, Entity Framework生成的SQL似乎對性能沒什麼影響。
補充:
兩個SQL的執行計劃比較:
a) Entity Framework生成的SQL:
b) LINQ to SQL生成的SQL: