实体框架 4 Single() vs First() vs FirstOrDefault()

2024-03-29

我花了很长时间寻找查询单个项目的不同方法的比较,以及何时使用每种方法。

有谁有一个比较所有这些的链接,或者一个关于为什么你会使用其中一个而不是另一个的快速解释?还有更多我不知道的运营商吗?

谢谢。


以下是不同方法的概述:

  • Find() - 当您想通过主键获取项目时。如果找不到项目,这将返回 null。它会在进入数据库之前查看上下文(正如 Yaron 在评论中指出的那样),如果您需要在同一上下文处于活动状态时多次获取同一实体,这可能是一个重要的效率因素。

  • Single() - 当您期望查询仅返回一项时。如果查询不完全返回一项,这将引发异常。

  • SingleOrDefault() - 当您期望查询返回零个或一个项目时(即您不确定是否存在具有给定键的项目)。如果查询不返回零个或一个项目,这将引发异常。

  • First() - 当您期望查询返回一个或多个项目,但您只想访问代码中的第一个项目时(此处的查询中排序可能很重要)。如果查询未返回至少一项,这将引发异常。

  • FirstOrDefault() - 当您期望查询返回零个或多个项目,但您只想访问代码中的第一个项目时(即您不确定是否存在具有给定键的项目)

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

实体框架 4 Single() vs First() vs FirstOrDefault() 的相关文章

  • 160 位 SHA1 哈希值的前 32 位是否可以替代 CRC32 哈希值?

    我正在开发一个 NET 3 5 项目 我需要一个 32 位哈希值 NET 加密类中似乎没有任何方法返回 32 位哈希 MD5 是 128 位 SHA1 是 160 位等 我实现了一个 CRC32 类 但我发现现有的 SHA1 和 MD5 哈
  • 在不可变类型的构造函数中生成HashCode

    我对不可变类型的 HashCode 有一些疑问 我可以在构造函数中 预 生成不可变类型的 HashCode 还是有任何理由不这样做 当调用 GetHashCode 方法时 我是否应该再次生成哈希码 这是一个示例类 public class
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 窗体最大化时自动缩放子控件

    有没有办法在最大化屏幕或更改分辨率时使 Windows 窗体上的所有内容自动缩放 我发现手动缩放它是正确的 但是当切换分辨率时我每次都必须更改它 this AutoScaleDimensions new System Drawing Siz
  • 我应该如何获取 IEnumerable 的长度? [复制]

    这个问题在这里已经有答案了 我正在编写一些代码 然后去获取 IEnumerable 的长度 当我写的时候myEnumerable Count 令我惊讶的是 它没有编译 看完之后IEnumerable Count 和 Length 之间的区别
  • 在域驱动设计中设置模型属性默认值的最佳实践?

    在 DDD 中为新实体设置默认属性的最佳方法是什么 另外 为复杂属性 例如集合 设置默认状态的最佳方法是什么 我的感觉是默认值应该在模型本身中 因为它们是业务规则的一种形式 默认情况下 我们希望 X 是 Y 和 Z 并且域代表业务 通过这种
  • 性能计数器损坏?

    性能计数器是邪恶的 不要使用它们 if PerformanceCounterCategory Exists ILoveYou is true PerformanceCounterCategory Delete ILoveYou throws
  • 需要带有 DateTime 转换的 lambda 表达式 OrderBy

    我正在尝试创建一个 lambda 表达式 Linq C 3 5 它可以对数据类型为 String 的值执行 OrderBy 但实际上包含可解析的 DateTime 例如 典型值可以是 5 12 2009 1 14 2008 等 下面的 Or
  • 使用.NET 访问Windows 注册表?

    我发现一个奇怪的行为 NET http en wikipedia org wiki NET Framework模块访问Windows注册表 http en wikipedia org wiki Windows Registry使用Regis
  • 从 GUID 获取类型

    由于种种原因 我需要在C 中实现类型缓存机制 幸运的是 CLR 提供了Type GUID来唯一标识一个类型 不幸的是 我找不到任何方法来根据此 GUID 查找类型 有Type GetTypeFromCLSID 但根据我对文档 和实验 的理解
  • 将 null 投射到某物中?

    今天我和一位同事进行了一次有趣的讨论 我们正在讨论两段 C 代码 代码片段 1 if reader IsDBNull 2 long variable1 reader GetInt64 2 代码片段2 long variable1 reade
  • 什么是 System.ContextBoundObject?

    What is 上下文绑定对象 http msdn microsoft com en us library system contextboundobject aspx用于 该文档提到了 上下文 它似乎是以编程方式定义的 但未能给出任何解释
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 如何使用 EPPlus 在单个 Excel 单元格中加载包含逗号的文本

    我正在尝试EPPlus 库 http epplus codeplex com 我被困在这个问题上 我必须在单个单元格中加载文本 但是当该文本包含逗号时 我使用的代码会沿着多个单元格 沿着正确的方向 分割文本 这是我用来加载文本的代码 usi
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 在 .NET 中,多次调用 string.Replace() 是否比单次调用 Regex 方法效率低?

    我想替换字符串中大约 8 个字符 使用 Regex 方法或仅使用对 string Replace 的多次调用会更有效吗 我将替换可能出现的大约 7 个字符 全部替换为下划线 字符可以出现在字符串中的任何位置 并且不按特定顺序等 除非您确实需
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T

随机推荐

  • 使用正则表达式计算字符串中的元音

    我刚刚开始学习 JavaScript 却陷入了正则表达式的困境 该程序应该计算输入字符串中元音的数量并显示元音 如果元音没有放在一起 程序运行良好 但如果元音出现在一起 则不会给出正确的值 e g 树 元音将显示为 ee 计数将为 1 Ty
  • RabbitMQ C# API:如何检查绑定是否存在?

    使用 RabbitMQ C API 我如何检查给定队列到给定交换是否存在绑定 很多 RabbitMQ 调用都是幂等的 所以有些人可能会说在这些情况下检查是不必要的 但我认为它们在测试中很有用 您可以使用他们的 REST API 来调用并查看
  • 为什么 sockJS 将“/info”添加到给定的 websocket url 路径

    我想打开一个带有 webapp socket do 路径的 websocket 端口 当我使用 SockJS 并尝试通过代码发起调用时 var socket new SockJS webapp socket do stompClient S
  • sizeof(*ptr) 和 sizeof(struct) 之间的区别

    我尝试了以下程序 struct temp int ab int cd int main int argc char argv struct temp ptr1 printf Sizeof struct temp d n sizeof str
  • Safari 中的 CSS 间距问题?

    我为我的最新项目制作了一个基于列表的导航栏 并在导航的每一侧添加了两个信息栏 它在 Firefox 和 IE 中的表现符合预期 但奇怪的是 Safari 却表现不佳 它在导航栏和右侧信息栏之间留出了很大的空间 CSS body backgr
  • Laravel 雄辩的变异器不适用于更新数据

    我的模型中有用于数据库表字段中的哈希 重新哈希数据的访问器和修改器 例如 public function setFullNameAttribute value this gt attributes full name Helper gete
  • 安装nodejs npm 和 grunt 出现错误

    我不熟悉 Python NodeJS NPM 或 Grunt 但我需要安装它 因为我想尝试一下Github项目 https github com raphaelluchini popcorntime smarttv 我从 node org
  • 如何在 AppFog 中使用 Apache 提供静态内容(WSGI Python 应用程序)

    我在用着AppFog http www appfog comPaaS 系统使用了几天 我喜欢它 它可能是我测试过的最好的 PaaS 系统 我之前使用过其他 3 个 但没有找到有关如何使用 Web 服务器提供静态内容的信息在前端 Apache
  • 从地图中获取一段键

    有没有更简单 更好的方法从 Go 中的映射中获取键的切片 目前我正在迭代地图并将键复制到切片 i 0 keys make int len mymap for k range mymap keys i k i 这是一个老问题 但这是我的两分钱
  • 在 C# 中获取特定时区的日期时间时出现 System.TimeZoneNotFoundException 错误

    我有一个 JSON 文件 其中包含time zone范围 它的值如下London Casablanca Arizona Pacific Time US Canada 等 基于time zone 我想得到DateTime该时区的结果 例如 C
  • Ubuntu 17.04 上 sudo apt-get 更新失败

    运行时sudo apt get update在 ubuntu 17 04 Zesty Zapus 上 我收到以下错误 我已经在错误行上发布了 我想安装 python 库 如 matplotlib 和 tkinter 但由于上述命令未成功运行
  • CSS 文件和不需要的覆盖

    我有一个简单的 HTML 页面 它引用了 3 个 CSS 文件 第一个是仅适用于页面的样式表 另外两个是针对两个独特情态动词的样式 这些模态 CSS 文件不是我创建的 它们很高兴被使用分别地在整个网站的其他页面上 我的问题是 这两个模态 C
  • 1-2 秒后暂停 YouTube 视频

    我正在使用 Youtube Player api 在我的应用程序中播放 YouTube 视频 视频开始播放并在 1 2 秒后暂停 我创建了视频片段和视图组 随后我创建了一些 youtobe 视频视图 视频片段 public static f
  • OpenCV 中 minEnclosureCircle 的意外结果

    我最近使用了 OpenCV 2 4 2 的函数 minEnendingCircle 因为我需要测量一团点的直径 一段时间后 我意识到结果不正确 因此我决定编写一个小例程来计算一组非常小的点的直径 我测试了该函数 1个单点 连续2 4分 仅由
  • 保留一个新对象而无需获取关联

    我在广告实体中有以下映射 class Ad Id Column name id unique true nullable false GeneratedValue strategy GenerationType SEQUENCE gener
  • 实现 ActiveRecord before_find

    我正在使用缓存在表中的关键字构建搜索 在表中查找用户输入的关键字之前 它会被标准化 例如 删除了一些标点符号 如 并对大小写进行了标准化 然后使用规范化的关键字来查找获取搜索结果 我目前正在使用 before filter 处理控制器中的标
  • 导入 React-Router-Dom 后 React App 变为空白

    导入前react router一切正常 现在它构建成功但显示空白页面 这是我的代码 App js import ReactDOM from react dom client import BrowserRouter Routes Route
  • 如何调查 imp.load_module 上的 python2 段错误

    我正在尝试安装和使用dolfin https aur archlinux org packages dolfin bzr 在 Arch Linux 上 使用 Python 2 7 3 找出导致分段的原因的最佳方法是什么 诸如此类的故障 py
  • 无法获取在Firebase存储中上传的图像的实际下载网址[重复]

    这个问题在这里已经有答案了 我正在尝试获取上传到 firebase 数据库的图像的下载网址 但任务Uri imageURL storageReference getDownloadUrl 没有给出存储在 firebase 存储中的图像的实际
  • 实体框架 4 Single() vs First() vs FirstOrDefault()

    我花了很长时间寻找查询单个项目的不同方法的比较 以及何时使用每种方法 有谁有一个比较所有这些的链接 或者一个关于为什么你会使用其中一个而不是另一个的快速解释 还有更多我不知道的运营商吗 谢谢 以下是不同方法的概述 Find 当您想通过主键获