相关疑难解决方法(0)

理解LINQ to SQL中的.AsEnumerable()

给出以下LINQ to SQL查询:

var test = from i in Imports
           where i.IsActive
           select i;
Run Code Online (Sandbox Code Playgroud)

解释的SQL语句是:

SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1
Run Code Online (Sandbox Code Playgroud)

假设我想在select中执行一些无法转换为SQL的操作.我的理解是,实现这一目标的传统方法是AsEnumerable()将其转换为可行的对象.

鉴于此更新的代码:

var test = from i in Imports.AsEnumerable()
           where i.IsActive
           select new 
           { 
               // Make some method call 
           };
Run Code Online (Sandbox Code Playgroud)

并更新了SQL:

SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0] 
Run Code Online (Sandbox Code Playgroud)

注意执行的SQL语句中缺少where子句.

这是否意味着整个"Imports"表被缓存到内存中?如果表中包含大量记录,这会导致性能下降吗?

帮助我了解幕后实际发生的事情.

c# linq linq-to-sql asenumerable

44
推荐指数
3
解决办法
4万
查看次数

标签 统计

asenumerable ×1

c# ×1

linq ×1

linq-to-sql ×1