程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在LINQ to SQL中了解.AsEnumerable()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在LINQ to SQL中了解.AsEnumerable()?

开发过程中遇到在LINQ to SQL中了解.AsEnumerable()的问题如何解决?下面主要结合日常开发的经验,给出你关于在LINQ to SQL中了解.AsEnumerable()的解决方法建议,希望对你解决在LINQ to SQL中了解.AsEnumerable()有所启发或帮助;

AsEnumerable的原因是

因此,当您Where之前调用该方法时,您所调用的是与Where方法不同的方法IEnumerable.Where。这Where说法是对liNQ转换为sql,新WhereIEnumerable一个接受一个IEnumerable,列举并产生相匹配的项目。这就解释了为什么您看到正在生成不同的sql。在将Where扩展名应用于第二版代码之前,将从数据库中完整获取该表。这可能会造成严重的瓶颈,因为整个表必须存储在内存中,或者更糟的是,整个表必须在服务器之间移动。允许sql Server执行Where并执行其最佳操作。

解决方法

给定以下LINQ to SQL查询:

var test = from i in Imports
           where i.IsActive
           SELEct i;

解释后的sql语句为:

SELECT [t0].[id] AS [Id] .... FROM [Imports] AS [t0] WHERE [t0].[isActive] = 1

说我想在选择中执行一些无法转换为SQL的操作。我的理解是,完成此操作的常规方法是AsEnumerable()将其转换为可行的对象。

鉴于此更新的代码:

var test = from i in Imports.AsEnumerable()
           where i.IsActive
           SELEct new 
           { 
               // Make some method call 
           };

并更新了SQL:

SELECT [t0].[id] AS [Id] ... FROM [Imports] AS [t0]

请注意,在执行的sql语句中缺少where子句。

这是否意味着将整个“导入”表缓存到内存中?如果表包含大量记录,这种性能会降低吗?

帮助我了解这里幕后的实际情况。

大佬总结

以上是大佬教程为你收集整理的在LINQ to SQL中了解.AsEnumerable()全部内容,希望文章能够帮你解决在LINQ to SQL中了解.AsEnumerable()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。