给出以下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"表被缓存到内存中?如果表中包含大量记录,这会导致性能下降吗?
帮助我了解幕后实际发生的事情.