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)
{
...
}
04-24 15:29
查看更多