通常情况在你的应用程序中,一旦你要查询完数据的的时候,你知道使用实体来做什么。

  假如你打印一份订单给顾客,你知道不包括组成订单的Items和Products信息,打印的信息是不完整的,所以查询时也需要加载这些信息。

  这类情况,查询时使用预先加载是很有用的。如果你需要额外的信息、实体,你可能需要提前加载这些实体数据,这会节省你的查询次数。

  正好与一些错误的观点相反,使用EF进行预先加载是可行的,而且比较方便,你可以简单地使用Include()来写自己的查询,像下面的方式:  

var reprint = (from order in ctx.Orders.Include("Items.Product")
where order.Customer.Name == "Fred Blogs"
&& order.Status == "Unshipped"
select order).First();

  这条查询语句的意思是,这条顾客的订单包括它们的“明细”,每条“明细”又包括它们的“产品”信息。

  结果的执行语句,不需要再做过多的查询,如下:  

foreach (var item in reprint.Items)
{
Console.WriteLine("\t{0} {1} = ${2}",
item.Quantity,
item.Product.Name,
item.Cost);
}
Console.WriteLine(reprint.TotalCost);

  备注:

  这样查询不需要明确再使用Include("Items"),Include("Items.Product")的使用明确地包括了“Items”。

最新文章

  1. 机器学习&深度学习资料
  2. 24.Redis2.8主从集群sentinel
  3. 四、解决MyEclipse控制台输出中文乱码的问题
  4. CQRS及.NET中的参考资料
  5. android的原理,为什么不需要手动关闭程序
  6. 通过jersey-client客户端调用Jersey的Web服务模拟CURD
  7. Fetching data with Ajax小例子
  8. L​i​n​u​x​下​配​置​T​o​m​c​a​t
  9. TeamCity Agent安装
  10. mysql的基础用法,水一下
  11. 06-HTML-表格标签
  12. PHP的swoole框架/扩展socket聊天示例
  13. JPA唯一索引更新删除的问题
  14. python-web开发环境搭建
  15. spring多个AOP执行先后顺序(面试问题:怎么控制多个aop的执行循序)
  16. 关于 cxGrid 的过滤问题
  17. SACD ISO镜像中提取DSDIFF(DFF)、DSF文件
  18. windows下面使用nginx配置web注意问题
  19. [HNOI 2018]寻宝游戏
  20. 洛咕 P3961 [TJOI2013]黄金矿工

热门文章

  1. 20180901 JavaScript闭包和匿名函数自动调用
  2. Codeforces Round #513 (rated, Div. 1 + Div. 2)
  3. Python头脑风暴4
  4. JAVA基础篇—多态
  5. URAL - 2065 Different Sums (思维题)
  6. zoj 4057
  7. Centos7重启网卡失败解决方法
  8. 《鸟哥的Linux私房菜》学习笔记(1)——文件与目录
  9. Mysql新建数据库、删除数据库
  10. loj2016 「SCOI2016」美味