首页 > 技术文章 > LINQ及EntityFramework何时从数据库返回数据,备忘

nanfei 2013-09-09 19:15 原文

Generally speaking, LINQ queries are executed when the application code processes
data (for instance, using a foreach or a for) or when certain methods are invoked
(ToList, ToArray, First, Single, and so on).

 下面的方法将会查询两次数据库:

var result = LINQToEntitiesQuery;
foreach(var o in result)
{
...
}

foreach(var o in result)
{
...
}

为了避免这种情况引起的性能问题,这种情况下需要将数据提前ToList(),代码如下:

var orders = LINQToEntitiesQuery.ToList();
foreach(var o in orders)
{
...
}
foreach(var o in orders)
{
...
}

 

推荐阅读