问题标签 [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.
eager-loading - 渴望加载 globalize2 翻译
我有 2 个模型 - 问题和答案(问题有很多答案),并且都有 globalize2 的翻译。每次我尝试通过答案加载问题时
导致为每个答案加载翻译(每个答案 1 个 sql 查询)。
我该如何优化它?
linq - 如何使用 LINQ to SQL 急切加载同级数据?
目标是在不使用匿名类型的情况下使用 LINQ to SQL 向 SQL Server发出最少的查询。该方法的返回类型需要是 IList<Child1>。关系如下:
Parent > Child1是一对多的关系
Child1 > Grandchild1是一对 n 关系(其中 n 为零到无穷大)
Parent > Child2是一对 n 关系(其中 n 为零到无穷大)
我能够急切地加载 Parent、Child1 和 Grandchild1 数据,从而对 SQL Server 进行一次查询。
这个带有加载选项的查询会加载所有数据,除了兄弟数据(Child2):
我还需要加载兄弟数据。我尝试过的一种方法是将查询拆分为两个 LINQ to SQL 查询并将结果集合并在一起(不漂亮),但是在访问同级数据时,无论如何它都是延迟加载的。
添加同级加载选项将为每个 Grandchild1 和 Child2 记录向 SQL Server 发出查询(这正是我试图避免的):
我还编写了 LINQ to SQL 查询来加入所有数据,希望它能够急切地加载数据,但是当访问 Child2 或 Grandchild1 的 LINQ to SQL EntitySet 时,它会延迟加载数据。
返回 IList<Child1> 的原因是为了水合业务对象。
我的想法是:
- 以错误的方式处理这个问题。
- 可以选择调用存储过程吗?
- 我的组织不应该使用 LINQ to SQL 作为 ORM?
任何帮助是极大的赞赏。
谢谢,
-斯科特
ruby-on-rails - 与 Arel (Rails 3) 的 Eager-loading 关联计数
简单的任务:假设一篇文章有很多评论,可以在一个长长的文章列表中显示每篇文章有多少评论。我正在尝试研究如何使用 Arel 预加载这些数据。
自述文件的“复杂聚合”部分似乎讨论了这种情况,但它并没有提供示例代码,也没有提供在两个查询而不是一个连接查询中执行此操作的方法,这对于表现。
鉴于以下情况:
我怎样才能为一篇文章预加载设置每个有多少评论?
entity-framework - n 层应用程序中的实体框架 - 延迟加载与急切加载模式
这个问题让我无法入睡,因为一年以来我一直在努力寻找解决方案,但是......我的脑海里仍然没有任何事情发生。也许你可以帮助我,因为我认为这是一个非常普遍的问题。
我有一个多层应用程序:表示层、业务逻辑层、模型层。为简单起见,假设我的应用程序在表示层中包含一个允许用户搜索客户的表单。现在用户通过 UI 填充过滤器并单击一个按钮。发生了一些事情,请求到达表示层的方法如CustomerSearch(CustomerFilter myFilter)
. 这个业务逻辑层现在保持简单:在模型上创建查询并返回结果。
现在的问题是:您如何面对加载数据的问题?我的意思是业务逻辑层不知道该特定方法将仅由该表单调用。所以我认为它不知道请求表单是否只需要返回 Customer 对象或带有链接 Order 实体的 Customer 对象。
我试图更好地解释:我们的表单只想列出按姓氏搜索的客户。它与订单无关。所以业务逻辑查询将类似于:
现在这工作正常。两天后,您的老板要求您添加一个表格,让您可以像其他人一样搜索客户,并且您需要显示每个客户创建的订单总数。现在我想重用该查询并添加附加(包含)订单并取回该逻辑的部分。
你会如何处理这个请求?
这是我从现在开始的最好的(我认为)想法。我想听听您的意见:我在 BLL 中的 CustomerSearch 方法不会直接创建查询,而是通过组成 ObjectQuery 的私有扩展方法传递,例如:
和
但这并不能说服我,因为它看起来太复杂了。
谢谢,马可
ruby-on-rails - 急切地加载这个 rails 协会
我有一个包含用户列表的 rails 应用程序。我在用户之间有不同的关系,例如合作、朋友、首选。列出用户时,我必须决定当前用户是否可以将特定用户添加到他的朋友中。
can_request_friendship_with(user) 看起来像:
我的问题是,在我的情况下,这意味着每个用户有 4 个查询。清单 10 个用户意味着 40 个查询。我能以某种方式急切地加载这个吗?
ruby-on-rails - Rails - 急切加载关联记录的数量,但不加载记录本身
我有一个页面需要很长时间才能呈现出来。一半的时间(3 秒)花在一个 .find 调用上,该调用有一堆急切加载的关联。我真正需要的是每种情况下关联记录的数量,以显示在表格中:我不需要实际记录本身。有没有办法只是急切地加载计数?这是一个简化的示例:
在我的表格中,对于每一行(即每个主题),我只显示主题字段的值以及每个主题的相关问题的数量。我可以优化上述 find 调用以满足这些要求吗?
我考虑过使用组字段,但我的完整调用包含一些不同的关联,以及一些二阶关联,所以我认为 group by 不会起作用。
:tags 在这种情况下是一个二阶关联,通过标记。这是我的联想,以防不清楚发生了什么。
感谢任何建议 - 最大
linq-to-sql - LINQ-to-SQL 急切地加载整个对象图
我需要从某个点向下加载整个 LINQ-to-SQL 对象图,加载所有子集合及其中的对象等。这将用于将对象结构和数据转储到 XML。
有没有办法在不生成大量硬编码的 DataLoadOptions 来“塑造”我的数据的情况下做到这一点?
nhibernate - nHibernate - 急切地获取已填充子列表的列表
我有一些对象:
这些类通过 nHibernate 映射到 MS Sql - 每个类的 db 中有一个表...
我想在我的存储库中创建一个方法 GetAccounts(int PersonID),它将返回一个列表,其中包含以最有效的方式填充的所有帐户的子集合。谁能给我有关如何执行此操作的任何指示-如果我能提供帮助,我真的不想将列表设置为映射中的子选择...
谢谢。
ruby-on-rails - 帮助我理解 Rails 急切加载
我对在活动记录中急切加载的机制有点困惑。假设一个Book
模型有很多Pages
,我使用这个查询来取一本书:
现在这是我感到困惑的地方。我的理解是@book.pages
已经加载并且不会执行另一个查询。但是假设我想找到一个特定的页面,我会怎么做?
我是否认为第一个示例将执行另一个查询,因此使急切加载毫无意义,或者活动记录足够聪明,知道它不需要执行另一个查询?
另外,我的第二个问题是,是否有一个论点是在某些情况下,急切加载在数据库上更加密集,有时多个小查询会比单个大查询更有效?
谢谢你的想法。
java - 渴望在 Hibernate 中使用 JPA2 加载 OneToMany
我有一个简单的实体@OneToMany
之间:Person
Pet
我想加载所有Person
相关Pet
的 s。所以我想出了这个(在测试类中):
但是,打开 SQL 日志记录显示,它执行 3 个查询(在数据库中有 2 个人员)。
有小费吗?
谢谢格戈