为什么使用 AsQueryable() 而不是 List()?

2024-01-23

我正在使用存储库模式进行数据访问实体框架 http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework and LINQ http://en.wikipedia.org/wiki/Language_Integrated_Query作为非测试存储库实施的基础。当调用返回 N 条记录而不是 List 时,我看到的大多数示例都会返回 AsQueryable()。这样做有什么好处呢?


AsQueryable 只是创建一个查询,获取列表所需的指令。您可以稍后对查询进行进一步更改,例如添加新的Where 子句,这些子句会一直发送到数据库级别。

AsList 返回一个包含内存中所有项目的实际列表。如果向其中添加新的Where 线索,您将无法获得数据库提供的快速过滤功能。相反,您获取列表中的所有信息,然后过滤掉应用程序中不需要的信息。

所以基本上,归根结底就是要等到最后一刻才做出承诺。

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

为什么使用 AsQueryable() 而不是 List()? 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 如何从java调用GraphViz

    如何从java调用GraphViz以及如何使用java调用GraphViz函数 为了访问 GraphViz 库来构建点图 需要包含哪些必要的 jar 文件 有没有生成点图的示例程序 Check this http www loria fr
  • Azure kubernetes - python 读取configmap?

    我正在尝试对 python 应用程序进行 Dockerize 并希望从 configmap 中读取配置设置 如何在Python中读取configmap 使用配置文件创建 configMap kubectl create configmap
  • Xcode 4:构建失败,没有问题

    该应用程序在模拟器中运行良好 可以构建并运行 当我连接我的设备 运行 iOS 4 3 的 iPhone 3GS 并以 iPhone 为目标时 结果是 构建失败 和 没有问题 查看构建结果窗口 一切都是绿色的 有一个复选标记 包括构建失败通知
  • 无法编译json框架

    我使用 json framework 来解析 json 但是当我编译时出现以下错误 xxx SBJsonStreamParser h xxx SBJsonStreamParser h 105 错误 在 unsafe unretained 之
  • IBM Data Studio 无法浏览 SAMPLE (DB2 Express-C) 上的数据

    我无法浏览 SAMPLE DB 上的数据 设置如下 Windows 7 64 位 PRO IBM DB2 Express C 10 5 500 107 最新 IBM Data Studio 版本 4 1 1 管理安装 使用 IBM Inst
  • 检测到潜在危险的 Request.Form 值

    我有一个带有 wmd 编辑器的表单 输入文本区域使用以下方式呈现 每次我提交表格时我都会得到A potentially dangerous Request Form value was detected from the client 我尝
  • 使用 ssh2 exec 执行多个命令

    我有一个运行一个命令的脚本 根据该结果 我可以运行下一个命令 步骤 运行第一个脚本 它将我置于全局中 然后从全局中我将运行下一个命令 第一个命令 stream ssh2 exec connection 配置全局 在这个结果之后我应该运行这个
  • Firebase部署404找不到index.html

    我在跑firebase init它正在创造firebase json firebase json位于应用程序根目录中 指向我的公共目录app 看这里 firebase json firebase harrison public app ig
  • 如何在spring中使用jdbcTemplate传递多个值进行查询

    在我的 Spring Hibernate 应用程序中 我将所有 sql 查询都放在一个 common queries xml 文件中 其中某些查询需要 2 到 3 个参数 如下所示
  • HTML 查找并停止显示子表

    我已经这样做了 table tbody tr th row1 th td w td tr tr th row2 th td x td tr tbody tbody tr th row1 th td y td tr tr th row2 th
  • 按钮栏不会粘在屏幕底部

    我试图将我创建的按钮栏放在每个屏幕的底部 我很容易就成功地完成了第一个屏幕 现在我尝试把它放到其他屏幕上 但似乎无法粘在屏幕底部 当我查看 hiearchyviewer 时 看起来包裹在我的布局和按钮栏周围的相对布局并没有填充整个屏幕 但它
  • 使用金属的纹理画笔(绘图应用程序)

    I am trying to implement a metal backed drawing application where brushstrokes are drawn on an MTKView by textured squar
  • Haskell 函数反转函数调用

    我有一个 lambda x f gt f x正在使用foldM操作 其中x是一个值并且f a gt b 是否有内置函数可以执行此操作 我可以更换吗 foldM x f gt f x 和一些f foldM f 我以为flip会这样做 但需要三
  • 如何消除 MFMessageComposeViewController 呈现的延迟?

    if MFMessageComposeViewController canSendText MFMessageComposeViewController sms message vc MFMessageComposeViewControll
  • 用于旋转图表数据标签的 Python PPTX 解决方法函数

    I intend to create the following chart using Python PPTX 下面的代码实现了颜色设置 字体大小和数字格式 但是 我还无法旋转数据标签 因为我相信此 API 在 python pptx 0
  • 动态更新 AutoCompleteTextView 适配器

    我想通过从 RESTful Web 服务获取列表来定期更改 AutoCompleteTextview 给出的建议 但无法使其顺利工作 我设置了一个硬编码的建议列表以确保它有效 ArrayAdapter
  • 如何使用 EmbeddedNavigator 在 DevExpress GridView 中保存行更改

    我正在使用嵌入式导航器的添加 编辑和删除按钮 我已经订阅了gridControl1 EmbeddedNavigator ButtonClick事件 然后我检查单击了哪个按钮 问题是 当我编辑单元格并按保存更改时 EndEdit 我没有看到新
  • 如何在Wordnet中找到“词法文件”?

    如果你看一下并选择 显示选项 显示词汇文件信息 您将看到一个非常有用的单词分类 称为词汇文件 例如 对于 填充 我们有
  • 使用 Office Open XML 重复内容

    我一直在研究 Office Open XML 文档规范的可能性 我对能够将自定义 XML 内容添加到文档并将其绑定到内容控件特别感兴趣 我想知道是否可以有重复的内容控制类型 例如 假设我的 docx 文件中有一些自定义 XML 如下所示
  • 为什么使用 AsQueryable() 而不是 List()?

    我正在使用存储库模式进行数据访问实体框架 http en wikipedia org wiki ADO NET Entity Framework and LINQ http en wikipedia org wiki Language In