问题标签 [eager-loading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1647 浏览

c# - Nhibernate 在一个表上加入两次

考虑以下类结构......

我想使用 NHibernate急切地加载类 ListViewControl。使用 Fluent 的映射如下图

这就是我试图急切地加载它的方式

现在,我的问题是该类在和ListViewControl中都获得了正确的记录,但是同一记录有多个条目。记录数等于对表进行的连接数,在本例中为两个。ActionsListViewActionsControlAction

我怎样才能避免这种情况?如果我SetFetchModelistViews查询中删除,操作会通过我不想要的代理延迟加载。

我还尝试创建别名...

这删除了重复的条目,但没有急切地加载

0 投票
1 回答
200 浏览

ruby-on-rails - Rails 急切加载

嗨,我有一个测试模型,它有_many 个问题,还有一个问题,它有_many 个答案...更多查询以获取问题然后获取答案 - 它不加入它们!当我使用 :joins ActiveRecord 进行查询时,会进行查询,但稍后当我需要 Test.questions 或 Test.questions.answers ActiveRecord 时,会再次进行这两个额外的查询!!!后来当我枚举日志中的问题或答案时,我看到每个对象的其他查询,但它有缓存标记......

这是正常的吗?

0 投票
2 回答
468 浏览

nhibernate - 我们什么时候必须在 NHibernate 中使用急切加载?它的用途是什么?

我们什么时候必须在 NHibernate 中使用急切加载?它的用途是什么?

0 投票
1 回答
3670 浏览

nhibernate - 如何在将子集合实体加入关联时急切获取子集合

假设以下虚构布局

我想写一个查询,告诉我给我一个名称为 X 的经销权,并获得 Cars 集合,但是当你这样做时使用对制造商的连接。我认为这需要使用 ICriteria。我在想这样的事情。。

但结果查询看起来不像我预期的那样。我开始认为某处可能需要 DetachedCriteria,但我不确定。

想法?

0 投票
2 回答
2208 浏览

ruby-on-rails - rails named_scope 忽略急切加载

两种型号(Rails 2.3.8):

  • 用户; 用户名和禁用属性;用户 has_one :profile
  • 轮廓; 全名和隐藏属性

我正在尝试创建一个 named_scope 来消除 disabled=1 和 hidden=1 用户配置文件。User 模型通常与 Profile 模型一起使用,因此我尝试预先加载 Profile 模型(:include => :profile)。

我在名为“可见”的用户模型上创建了一个 named_scope:

我注意到,当我在查询中使用 named_scope 时,会忽略急切加载指令。

变体 1 - 仅限用户模型:

变体 2 - 在视图中使用 Profile 模型;延迟加载配置文件模型

变体 3 - 急切加载配置文件模型

变体 4 - 使用 name_scope,包括预加载指令

变体 4 确实返回了正确数量的记录,但似乎也忽略了急切加载指令。

这是跨模型命名范围的问题吗?也许我没有正确使用它。

Rails 3 能更好地处理这种情况吗?

0 投票
4 回答
27194 浏览

nhibernate - 使用 Fluent NHibernate/Nhibernate 和自动映射的渴望加载

我需要加载一个名为Node的复杂对象......它并不复杂......它看起来如下: -

节点具有对EntityType的引用,该引用与Property具有一对多关系,而Property又与PorpertyListValue具有一对多关系

我试图做的是一次加载所有子对象的 Node 对象。没有延迟加载。原因是我在数据库中有数千个节点对象,我必须使用 WCF 服务通过网络发送它们。我遇到了类 SQL N+1 问题。我正在使用带有 Automapping 的 Fluent Nhibernate,而 NHibernate Profiler 建议我使用FetchMode.Eager一次加载整个对象。我正在使用以下 qyuery

或使用 NHibernate LINQ

当我运行上述任何查询时,它们都会生成一个带有所有左外连接的相同查询,这正是我所需要的。但是,由于某种原因,查询返回的 IList 没有被加载到对象中。实际上返回的Nodes计数等于查询的行数,因此Nodes对象是重复的。此外,每个Node中的属性都是重复的,Listvalues也是如此。

所以我想知道如何修改上述查询以返回所有具有属性和列表值的唯一节点。

0 投票
1 回答
17195 浏览

c# - Linq to Entities - 使用 Include() 急切加载

我有这个非常基本的表结构:

dbo.tblCategory
dbo.tblQuestion(与 tblCategory 的多对一关系)
dbo.tblAnswer(与 tblQuestion 的多对一关系)

所以基本上,我想要做的是当我加载一个类别时,我还想加载所有问题和所有答案。

现在,我已经能够使用以下代码执行此操作:

但是,我并不完全迷恋这一点。如果我的模型中的关系名称发生变化;构建项目时我不会出错。理想情况下,我想使用 lambda 表达式;像这样的东西:

现在,使用上面的代码片段;我被困在如何深入到答案表上。关于我可以为这个 lambda 表达式使用什么的任何想法?

0 投票
1 回答
699 浏览

nhibernate - NHibernate Eager Loading Collections + Paging

这是我试图用急切加载的集合返回的实体示例。

混音->曲目(收藏)->标签(收藏)

我需要返回带有急切加载的曲目和标签的混音的分页列表,而无需分页,通过使用 Future<>() 函数对曲目 + 标签运行多个查询,它相对简单。

因为需要对这些数据进行分页......我怎样才能取回我的所有数据,以便 NHibernate 在显示我的数据时不会出现 N+1 问题。

保罗

0 投票
1 回答
778 浏览

ruby-on-rails - 多态关联的急切加载

不确定这可能属于性能部分以及模型/数据库部分,所以这里......

假设我有 3 个模型:

和 ...

现在,如果我需要所有电影的所有兴趣列表,并且我还想显示这些 Movies 对象的创建日期(说明它们的年龄),那么我使用查找 resource_type 属性,然后使用 @some_interest.resource .created_at。

问题是如果我有 100 个电影兴趣,那么我会得到 101 个查询,对吗?所以线性退化。我尝试在查询调用中使用 :include => [:resource] ,但它说不能在多态关联中使用包含。

我怎样才能急切加载或优化这个问题以避免这种严重的退化?

任何帮助将不胜感激 !!

0 投票
2 回答
174 浏览

nhibernate - NHibernate Eager Loading - 大量不相关的数据

我的成员将能够使用 X 数量的小部件自定义他们的个人资料页面,每个小部件显示不同的数据,例如音乐列表、他们关注的人员列表等。

几个小部件包括: - 他们上传的媒体列表 - 他们关注的人员列表 - 关注他们的人员列表 - Html/文本小部件 - 媒体统计(下载数量等) - 其他成员留下评论的评论小部件

一些小部件必须对返回的数据进行分页,因为可能有数百个结果。

我目前还没有进行任何优化,因此它正在做大量的数据库工作来返回所有数据......检索数据的最有效方法是什么......每个小部件 1 个数据库调用是否可以接受?每页可能有大约 5-20 个小部件。

如果您需要有关我的情况的更多信息,请随时询问。

保罗