卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章17217本站已运行3325

C# 中 IEnumerable 和 IQueryable 有什么区别?

C# 中 IEnumerable 和 IQueryable 有什么区别?

  • IEnumerable 存在于 System.Collections 命名空间中。
  • IQueryable 存在于 System 中。 Linq 命名空间。
  • IEnumerable 和 IQueryable 都是正向集合。
  • IEnumerable 不支持延迟加载
  • IQueryable 支持延迟加载
  • 从数据库查询数据时,IEnumerable 在服务器端执行选择查询,在客户端将数据加载到内存中,然后过滤数据。
  • 从数据库查询数据,IQueryable 在服务器端执行选择查询带有所有过滤器的服务器端。
  • IEnumerable 扩展方法采用函数对象。
  • IQueryable 扩展方法采用表达式对象意味着表达式树。

示例

IEnumerable

'
dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>

为上述查询生成的Sql语句

'
SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0

可查询

'
dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);

为上述查询生成的Sql语句

'
SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
卓越飞翔博客
上一篇: 在C++中,找到使数组所有元素相等所需的操作次数
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏