tag:blogger.com,1999:blog-1404511988137688219.post4670690329132062151..comments2024-03-07T14:58:14.696+08:00Comments on KingKong Bruce記事: 使用Entity Framework Code first建立多對多關係陳傳興http://www.blogger.com/profile/14720896380519694038noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-1404511988137688219.post-42497121160968903982013-10-16T07:52:39.641+08:002013-10-16T07:52:39.641+08:00Entity Framework 的效能調效是個大主題。
基本認知是:EF的方便性是用效能換來的,...Entity Framework 的效能調效是個大主題。<br /><br />基本認知是:EF的方便性是用效能換來的,如果真的非常非常Care效能,那就走ADO.NET方式不要走Entity Framework。<br /><br />「entity framework 效能」與「entity framework performance」關鍵字有些不錯的文章可以參考。<br /><br />不過,EF 5之後,預設會採用“預編譯”、“快取”…等方式來加速,當然,“第一次”還是會慢一些,不過後面的重覆性查詢,有時可以得到幾乎ADO.NET一樣快的結果。陳傳興https://www.blogger.com/profile/14720896380519694038noreply@blogger.comtag:blogger.com,1999:blog-1404511988137688219.post-32668375526502749512013-10-16T03:05:13.584+08:002013-10-16T03:05:13.584+08:00您好,
最近在實作時,在1對多或多對多關係的查詢上有點疑問。
在實作上,都會使用ICollecti...您好,<br />最近在實作時,在1對多或多對多關係的查詢上有點疑問。<br /><br />在實作上,都會使用ICollection來宣告子項目,但ICollection並不是擴充於IQueryable。<br />而ODATA或LINQ子查詢使用IQueryable的項目會將所有查詢統合到SQL,理論上會有更好的效能。<br />但使用ICollection子項目的話,會使用完整的SQL Command去撈回所有子項目,之後才在記憶體中去處理子查詢/排序。<br /><br />例如,我想撈出某Dev的所有未關閉的Project、並以建立時間排序:<br />var dev = ctx.Dev.Find(id);<br />return dev.Projects.Where(proj => !proj.IsClose).OrderBy(proj => proj.CreatedOn);<br />我監視了一下,在SQL端的確使用INNER JOIN撈出了所有屬於該dev的Project。<br />那麼,篩選與排序就是在Server上做的。<br /><br />這樣應該會造成不必要的效能(Web Server)和頻寬(SQL Server與Web Server之間)負擔?<br />有辦法能解決嗎?<br />還是說不需要擔心這點?Litfalhttps://www.blogger.com/profile/11495044865533366941noreply@blogger.comtag:blogger.com,1999:blog-1404511988137688219.post-27479757853126471162013-10-07T15:09:02.788+08:002013-10-07T15:09:02.788+08:00已修正 Dev.cs / Project.cs 的內容。謝謝。已修正 Dev.cs / Project.cs 的內容。謝謝。陳傳興https://www.blogger.com/profile/14720896380519694038noreply@blogger.comtag:blogger.com,1999:blog-1404511988137688219.post-36223358044298260702013-10-07T14:59:38.997+08:002013-10-07T14:59:38.997+08:00範例照打不會動喔
該不會是故意的吧 哈哈
等一下會不會有人 mail 來要程式碼 XD
D...範例照打不會動喔<br /><br />該不會是故意的吧 哈哈<br /><br />等一下會不會有人 mail 來要程式碼 XD<br /><br />Devs 中 s 的問題,有些地方有 s,有些地方沒有 sAnonymoushttps://www.blogger.com/profile/08157990825075357291noreply@blogger.com