1. 首页>
  2. 技术文章>
  3. 比较LINQ to Entities的AsQueryable和AsEnumerable方法

比较LINQ to Entities的AsQueryable和AsEnumerable方法

6/17/17 10:18:53 AM 浏览 1410 评论 0

LINQ

LINQ中的AsQueryable和AsEnumerable方法最大区别在于,AsQueryable是在数据库端进行的数据处理后再返回,而AsEnumerable则刚好相反,大部分情况下,我们应该使用AsQueryable,比如下面例子:

using (testContext context = new testContext())
{

    var query = (from item in context.Users.AsQueryable()
                    where item.id > 10
                    select item.id).ToList();

    var query2 = (from item in context.Users.AsEnumerable()
                    where item.id > 10
                    select item.id).ToList();
}

生成的SQL如下:

--AsQueryable
Select
[Extent1].[id] AS [id]
FROM [dbo].[User] AS [Extent1]
Where [Extent1].[id] > 10
--AsEnumerable

Select
[Extent1].[id] AS [id],
[Extent1].[usn] AS [usn],
[Extent1].[pwd] AS [pwd],
[Extent1].[created] AS [created]
FROM [dbo].[User] AS [Extent1]

 

网友讨论

6楼 7/9/17 11:50:29 PM
<script>alert(&apos;ok&apos;);</script>
5楼 7/9/17 11:50:12 PM
你好
你好
4楼 7/9/17 11:47:05 PM
测试
3楼 7/9/17 11:46:54 PM
你好
2楼 7/9/17 11:45:50 PM
好吧
1楼 7/9/17 11:45:41 PM
弄好