zoukankan      html  css  js  c++  java
  • Linq技巧3——何时及怎么使用预先加载

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

      假如你打印一份订单给顾客,你知道不包括组成订单的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("	{0} {1} = ${2}", 
            item.Quantity, 
            item.Product.Name, 
            item.Cost); 
    } 
    Console.WriteLine(reprint.TotalCost);

      备注:

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

    出处: http://www.cnblogs.com/windy2008

  • 相关阅读:
    ios7--UIImageView
    ios6--UILabel
    ios5--计算器
    ios4--UIView的常见属性(尺寸和位置)
    ios2--UIView的常见属性
    PG数据库获取最近四个小时 使用产品的用户审计信息
    可添加头部尾部RecyclerView,很帅哦~
    http请求及缓存框架 GalHttprequest
    据说年薪30万的Android程序员必须知道的帖子
    Android显示GIF动画 GifView
  • 原文地址:https://www.cnblogs.com/windy2008/p/3394272.html
Copyright © 2011-2022 走看看