我是否误解了 LINQ to SQL .AsEnumerable()?

2023-11-25

考虑这段代码:

var query = db.Table
              .Where(t => SomeCondition(t))
              .AsEnumerable();

int recordCount = query.Count();
int totalSomeNumber = query.Sum();
decimal average = query.Average();

Assume query需要很长时间才能运行。我需要获取记录总数SomeNumber返回,最后取平均值。根据我的阅读,我认为.AsEnumerable()将使用 LINQ-to-SQL 执行查询,然后使用 LINQ-to-ObjectsCount, Sum, and Average。相反,当我在 LINQPad 中执行此操作时,我看到相同的查询运行了三次。如果我更换.AsEnumerable() with .ToList(),它只会被查询一次。

我是否遗漏了什么AsEnumerable是/确实吗?


Calling AsEnumerable() 不执行查询,枚举则执行。

IQueryable是允许的接口LINQ to SQL来施展它的魔力。IQueryable实施IEnumerable所以当你打电话时AsEnumerable(),您正在更改从那里调用的扩展方法,即从IQueryable-方法IEnumerable-方法(即从LINQ to SQL to LINQ to Objects在这种特殊情况下)。但你是not执行实际查询,只需更改how它将被完整执行。

要强制执行查询,您必须调用ToList().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我是否误解了 LINQ to SQL .AsEnumerable()? 的相关文章

  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • Android 媒体录制:java.lang.RuntimeException:启动失败

    我正在处理电话录音 当我开始录制电话时 不幸的是它停止了 它给出了错误MediaRecorder启动失败 2147483648 我参考这个答案link 但我不明白 请告诉我我的代码有什么问题 这是我的代码 public class Inco
  • git `merge --squash` 不会添加“合并”标头来提交

    我想知道所有工具如何知道合并哪些分支 提交 直到我在提交中找到 合并 标头 我的问题是 为什么git merge squash不添加该标头 同时git merge does 换句话说 为什么我在合并时看到合并边缘git merge虽然没有边
  • 反连接比左外连接更有效吗?

    评论于这个答案注意到反连接可能已经过优化 比 Oracle 中的外连接更有效 我很想知道什么解释 证据可能支持或反驳这一说法 当您在 SQL 查询中使用 不存在 或 不在 时 您可以让 Oracle 选择合并反连接或散列反连接访问路径 快速
  • 避免应用程序请求对话框中出现错误 100:无效参数(需要有效的重定向 URI)

    我正在为 Facebook 开发一款游戏 我需要一种让用户邀请其他人加入游戏的方法 为此 我使用应用请求对话框 我将用户重定向到对话框 URL 将其粘合在一起 如下所示 url http www facebook com dialog ap
  • 可以在 vi 上映射 shift + shift 吗?

    我正在尝试使用 shift shift 配置键映射 这可能吗 我努力了
  • MFMailComposeViewController 不解雇

    我有在 didSelectRowAtIndexPath 中调用的以下代码 问题是 当我点击取消按钮时 它提示保存草稿或放弃 但是当我单击其中任何一个时 视图都不会消失 我在 iOS 5 之前的应用程序中使用了相同的代码 并且效果很好 有任何
  • jQuery.ajax 中是否弃用 success 参数?

    今天我听说 jQuery ajax 函数中的 success Parameter 已被弃用 我理解正确吗 或者我误解了什么 例如 这在将来将不起作用 ajax url ax comment php type POST data mode v
  • JPA getSingleResult() 或 null

    我有一个insertOrUpdate方法插入一个Entity当它不存在时或更新它 如果存在 为了实现这一点 我必须findByIdAndForeignKey 如果它返回null如果没有则插入 然后更新 问题是如何检查它是否存在 所以我尝试了
  • T-SQL IsNumeric() 和 Linq-to-SQL

    我需要从数据库中找到满足特定格式约定的最高值 具体来说 我想找到看起来像的最高值 EU999999 9 是任意数字 select max col 将返回类似 EUZ 的内容 例如我想排除的内容 以下查询可以解决问题 但我无法通过 Linq
  • Haskell QuickCheck2 使用 ByteString?

    RWH 书籍说要获得 ByteString 支持 我需要添加 instance Arbitrary B ByteString where arbitrary fmap B pack arbitrary coarbitrary coarbit
  • 使用 Roxygen 在 NAMESPACE 中制作 S3method

    我想使用 roxygen2 导出一个名为 myclass 的 S3 方法 但我看不到一个干净的方法来执行此操作 我需要 NAMESPACE 才能拥有 S3method myclass 或者在我需要包后无法使用该方法 但 roxygen2 似
  • 用于语言和文化感知软件的术语

    我一直认为术语 国际化 和 本地化 以及它们有趣的缩写 i18n 和 l10n 被普遍接受并用于谈论意识到语言和文化差异的软件 但我最近读到了一个关于这些主题的问题 其中提到了 全球化 并且也被标记为 全球化 因为我之前没有听说过这个术语
  • 接受 QGraphicsScene 上的放置

    我正在尝试实现拖放QGraphicsScene 以下是我超载的事件 void TargetScene dragEnterEvent QGraphicsSceneDragDropEvent event bool acceptDrag fals
  • 使用 virtualenv 安装 django1.7 和 Python 3.4

    关于使用配置为 Python 3 4 的 virtualenv 设置 django 1 7 我遇到了一些困难 我使用以下命令创建了一个 Python 3 4 virtualenv sudo virtualenv no site packag
  • Galaxy S 和 Galaxy S2 的最小宽度

    我正在开发一个 Android Widget 需要区分Galaxy S and Galaxy S2 我几乎阅读了所有有关屏幕尺寸和密度的文章 当然 我需要将新的限定符与新的限定符一起使用最小宽度 我的问题是 sw320dp 预选赛与 Gal
  • 单值 Mysqli [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个函数 该函数将使用 mysqli 检查数据库中的单个值 而不必将其放入数组中 除了我已经在这里做的事情之外 我还能做什么 function getval query mysqli new mys
  • 如何从 Java 获取连接到 Websphere MQ 队列的消费者数量

    我正在尝试从 Java 获取特定 Websphere MQ 队列的使用者数量 我需要知道在将消息放入队列之前是否有人会使用它们 首先 值得注意的是 所提出的设计是一个非常非常糟糕的设计 效果是将异步消息传递回同步消息传递 这将消息生产者与消
  • Braintree Drop-in UI:错误:无法解析:org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.1-2?

    I am integrating Braintree Drop in UI but my project is not getting compiled I have used below dependency implementation
  • 验证来自多个来源的令牌(例如 Cognito 和 Azure)

    我们正在开发一个 API 允许用户通过多个不同的提供商进行身份验证 单独的提供商不是问题 但将它们一起使用却被证明是一个挑战 似乎添加超过 1 个提供商会引发InvalidOperationException应用程序启动时显示 方案已存在
  • 我是否误解了 LINQ to SQL .AsEnumerable()?

    考虑这段代码 var query db Table Where t gt SomeCondition t AsEnumerable int recordCount query Count int totalSomeNumber query