Tag: eager loading

如何确定钢轨协会是否急于加载?

有没有人知道一种方式来确定如果一个Rails协会已经急于加载? 我的情况:我有一个结果集有时其中一个协会是渴望加载,有时不是。 如果不是急切加载,那么我想用ActiveRecord的查找来查找关联。 如果是急于加载,我想使用检测。 例如,假设我在项目模型中有一个“has_many”的shipping_info对象数组。 然后: 如果item急切加载,最有效的加载是: item.shipping_infos.detect { |si| si.region == "United States" } 如果item不是急于加载,则最有效的加载是: item.shipping_infos.where(region: "United States").first 但是,除非我知道是否急于加载,否则我不知道要调用哪个代码来有效地获取logging。 如果我不使用第一种方法,那么我不得不查找更多的数据库logging。 如果我在使用第二种方法的时候,我的加载的对象被忽略。

我如何热切地将Entity Framework Code First中的实体的子孙元素?

设想三个实体(Customer,Book,Author)是这样的: 客户有很多书籍 一本书有一个作者 我使用这些数据来打印这样的报告: Customer: Peter Book: To Kill a Mockingbird – Author: Harper Lee Book: A Tale of Two Cities – Author: Charles Dickens Customer: Melanie Book: The Hobbit – Author: JRR Tolkien 当我查询客户时,正如我们所期望的那样,我得到了一系列以下性质的查询 查询获取客户 每个客户查询他的书籍的查询 每本书的查询来获取其作者 我可以通过包含这样的书籍来减less查询次数: var customers = db.Customers.Include(c => c.Books); 但是我不知道如何加载第三层(作者)。 我怎样才能做到这一点?