|
|
1
15
IQueryable将查询表示为表达式树,而不在服务器上对其求值。这允许您在实际生成SQL之前指定进一步的处理。 在上述情况下,这意味着您可以对调用GetItems()的结果进行处理,并将原始查询和额外的内容作为单个查询发送:
为了澄清一个技术问题
|
|
2
5
要使用LINQ2SQL示例。。。想象一下,你返回了一个IQueryable的客户。 在引擎盖下,它将不是一个客户机列表(直到您列出()它),而是一个SQL查询,如下所示:
现在这很方便,因为我们还没有找到数据库!因此,假设IQueriable返回时,我们希望将其细化为名为“Bob”的客户,我们可以:
现在,当我执行clients.ToList()时,查询将运行,数据库将被命中,并且我有一个名为bob的客户机列表,无需选择所有客户机,然后在内存中遍历它们,或者执行两次单独的数据库命中。 例如,当datacontext退出作用域时(例如:在using语句中运行select),就要尝试访问子元素。在LINQ2SQL中,这就是加载选项派上用场的地方。 希望有帮助 |