四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

看看Entity Framework 4生成的復雜的分頁SQL語句

  之前發現Entity Framework 4生成的COUNT查詢語句問題,今天又發現它生成的分頁SQL語句問題,而LINQ to SQL卻不存在這個問題。

  >>> 來看一看,瞧一瞧!

  上代碼:

  看生成的SQL語句:

  1. Entity Framework生成的SQL:

  一個TOP,三個FROM。

  2. LINQ to SQL生成的SQL:

  無TOP,兩個FROM。

  兩者的差距一目了然。

  >>> 再來看一個:

  將上面代碼中Where的查詢條件改為常量,即Where(coder => coder.Age > 20),見下圖:

  然后看看生成的SQL。

  1. Entity Framework生成的SQL:

  明顯不一樣吧(顏色),實際上只是少了個exec sp_executesql,但會帶來性能影響(sp_executesql will use cached plan to get more performance, 這里談到了這個問題)。

  2. LINQ to SQL生成的SQL與之前的一樣。

  Entity Framework考慮了多數據庫支持、存儲過程支持,卻忽視了這個地方。

  從LINQ to SQL的DataContext到Entity Framework的ObjectContext,然后又發布ADO.NET Entity Framework Feature CTP5搞了個DbContext,DbContext也沒有解決這個問題,感覺微軟的思路有些亂。

  目前看來,如果用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:

NET技術看看Entity Framework 4生成的復雜的分頁SQL語句,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 杀破狼·贪狼 2017 古天乐| 风流一代电影| 寄诚庸| jar of love完整版| 金针菇尽量少吃最好不吃什么| 羽球人头像| 列兵大学生| 李亚红| 暗恋桃花源剧本| 男同操视频| hellokitty壁纸| 爱情赏味期| 陕西卫视节目表| 炙热电影| 九龙城寨在线观看| 任港秀| 瑜伽焰口拼音版全文| 小妖怪的夏天| 电影痴汉电车| 延边卫视节目表| 教育向美而生读书心得体会| 情侣不雅视频| 皮囊之下| cctv第一剧场频道| 成年奶妈| 验光单子的数据怎么看| 冒险王2| 古风少女换装纸娃娃| 香港之夜电影完整版在线播放| 洗鼻器的使用方法教程| 德鲁| 女王的条件| 雾锁南洋1984年版电视剧| 韩寒| 铁血使命演员表全部| 你是我的命运电影| 一个桃子的热量| 郭柯彤| 超级飞侠 第四季 动漫| 陈一龙电视剧全集| 南来北往电视剧剧情介绍|