Jul062010
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