亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在EntityFramework中的ObjectSet上使用多少Include以保持性能?

我可以在EntityFramework中的ObjectSet上使用多少Include以保持性能?

HUX布斯 2019-07-27 09:56:13
我可以在EntityFramework中的ObjectSet上使用多少Include以保持性能?我在我的個人資料頁面使用以下LINQ查詢:var userData = from u in db.Users                         .Include("UserSkills.Skill")                         .Include("UserIdeas.IdeaThings")                         .Include("UserInterests.Interest")                         .Include("UserMessengers.Messenger")                         .Include("UserFriends.User.UserSkills.Skill")                         .Include("UserFriends1.User1.UserSkills.Skill")                         .Include("UserFriends.User.UserIdeas")                         .Include("UserFriends1.User1.UserIdeas")                                where u.UserId == userId                               select u;它有一個長對象圖并使用許多包含。它現在運行得很好,但是當網站有很多用戶時,它會影響性能嗎?我應該用其他方式嗎?
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

是的,它會的。如果擴展主表行上的多個詳細信息行,請避免使用Include。

我相信EF將查詢轉換為一個大型連接而不是幾個查詢。因此,您最終會在詳細信息表的每一行上復制主表數據。

例如:Master - > Details。比如說,master有100行,Details有5000行(每個master有50行)。

如果延遲加載詳細信息,則返回100行(size:master)+ 5000行(size:details)。

如果使用.Include(“Details”),則返回5000行(size:master + details)?;旧?,主要部分重復50次。

如果包含多個表,它會向上相乘。

檢查EF生成的SQL。


查看完整回答
反對 回復 2019-07-27
  • 3 回答
  • 0 關注
  • 814 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號