Linq to sql 延迟加载

通常写法:

var query = from c in gbcnt.tbGuestBook select c

像这样的查询语句不会立即执行数据库查询

加上这句

foreach(var tbguest in query)
{
	Response.Write(tbguest.Message);
}

这就会执行查询语句了,这种查询他只会在试用时才会去查询数据。
这个缺点是,你后面使用了多少个query他就会去执行多少次查询数据库。

还有种做法是,查询一次把结果就保持下来,后面使用就不会再去查询数据库

  IEnumerable enumerble = (from c in gbcnt.tbGuestBook select c).ToList();
 		foreach(tbGuestBook em in enumerble)
            {
                Response.Write(em.Message);
            }
           	 foreach(tbGuestBook em in enumerble)
            {
                Response.Write(em.Message);
            }

这样2次foreach循环只会在IEnumerable enumerble = (from c in gbcnt.tbGuestBook select c).ToList();这里去查询数据库。

延迟执行的优点在于我们可以像拼接SQL那样拼接查询句法,然后再执行:

       var query = from c in ctx.Customers select c;
 
        var newquery = (from c in query select c).OrderBy(c => c.CustomerID);

本文固定链接: http://www.funnedlife.com/archives/321.html | Bay_ker

该日志由 bayker 于2010年07月06日发表在 【程序·相关】 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Linq to sql 延迟加载 | Bay_ker
关键字:

Linq to sql 延迟加载:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter