相关疑难解决方法(0)

我可以在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;
Run Code Online (Sandbox Code Playgroud)

它有一个长对象图并使用许多包含.它现在运行得很好,但是当网站有很多用户时,它会影响性能吗?

我应该用其他方式吗?

linq performance linq-to-entities entity-framework asp.net-mvc-2

47
推荐指数
3
解决办法
1万
查看次数

在下一个实体框架中选择N + 1

关于EF4与NHibernate相比,我听到的少数有效投诉之一就是EF4在处理延迟加载的集合方面很差.例如,在一个延迟加载的集合中,如果我说:

if (MyAccount.Orders.Count() > 0) ;
Run Code Online (Sandbox Code Playgroud)

EF将整个系列拉下来(如果还没有),而NH将足够智能发出一个 select count(*)

NH还有一些很好的批量提取来帮助解决这个select n + 1问题.据我了解,最接近的EF4可以使用Include方法.

EF团队是否有任何迹象表明这将在下一次迭代中修复?我知道他们在POCO上很努力,但这似乎是一个受欢迎的解决方案.

entity-framework

10
推荐指数
1
解决办法
1万
查看次数