强制仅从 DataReader 返回单行

2023-12-28

我似乎在我的代码中写了很多这样的内容:

using (var reader = cmd.ExecuteReader())
{
    if (reader.Read())
    {
        result = new User((int)reader["UserId"], reader["UserName"].ToString());
    }

    if (reader.Read())
    {
        throw new DataException("multiple rows returned from query");
    }
}

是否有一些我不知道的内置方法可以做到这一点?


我不知道,但是这段代码可以委托给扩展方法:

public static R Single<R>(this DataReader reader, Func<DataReader,R> selector) {
    R result = default(R);
    if (reader.Read())
        result = selector(reader);
    if (reader.Read())
        throw new DataException("multiple rows returned from query");
    return result;
}

像这样使用:

using (var reader = cmd.ExecuteReader())
{
    User u = reader.Single(r => new User((int)r["UserId"], r["UserName"].ToString()))
}

使您免于代码重复。

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

强制仅从 DataReader 返回单行 的相关文章

  • Web API 复杂参数属性均为 null

    我有一个 Web API 服务调用可以更新用户的首选项 不幸的是 当我从 jQuery ajax 调用中调用此 POST 方法时 请求参数对象的属性始终为 null 或默认值 而不是传入的值 如果我使用 REST 客户端调用相同的方法 我使
  • 如何在 C++ 中的嵌套词法作用域可访问的作用域中声明静态信息?

    我想声明范围的标识符 该标识符将用于自动填充最内部范围内任何日志记录语句的字段 它们通常会 但并非总是如此 例如 lambda 使用 引入的块 匹配封闭块的 名称 用法看起来像这样 namespace app LOG CONTEXT app
  • 查找周边上的点来表示边界/形状

    我有一个简单的二维网格 其格式为myGrid x y 我正在尝试找到一种方法来找到所选网格周围的周长 这样我就有了所选网格的形状 这是我的意思的一个例子 这里的想法是找到所有相关的 角点 也就是图像周边的红点 放入一个列表中 这样我就可以从
  • 有了private修饰符,为什么可以直接访问其他对象中的成员呢?

    我有以下代码 class A private int x public A x 90 A A a1 A a2 a1 x 10 a2 x 20 int getX return this gt x 我知道代码可能很奇怪 但我不明白为什么a1 a
  • 运行命令行进程并在该进程仍在运行时获取输出?

    如何运行命令行进程并在该进程仍在运行时获取输出 我的意思是使用自己的进度条运行 CLI 进程 可执行文件本身需要很长时间才能完成操作 所以我想从自己的进程中获取进度信息来显示我的应用程序中的进度 否则我不这样做在进程完成之前没有任何信息来显
  • 可以轻易移动,但不可轻易复制

    是否可以创建类类型 即 普通移动构造 但不是普通复制构造 但仍然可复制构造 普通复制构造 但不是普通移动构造 但仍然可移动构造 可以简单地复制分配 但不能简单地移动分配 但仍然可以移动分配 可以简单地移动分配 但不能简单地复制分配 但仍然可
  • 在 .NET Core 上通过 MEF 将参数传递给插件构造函数?

    我花了几个小时试图弄清楚如何通过 MEF System Composition 将参数传递给插件构造函数 但一切都无济于事 不用说 相关文档很少 查看源代码也没有帮助 这曾经非常容易做到 使用 CompositionHost Compose
  • 尝试加载自定义配置时,Visual Studio 安装和部署项目中出现 FileNotFoundException

    我试图在我的设置和部署项目中调用自定义操作来更新我的应用程序上的 app config 中的某些项目 我已经以通常的方式完成了自定义配置部分 例如 ConfigurationProperty serviceProvider IsRequir
  • 需要帮助将 winform 迁移到 net 5

    我正在将 winform 应用程序从 net core 3 1 移植到 net 5 并收到以下错误 严重性代码 说明 项目文件行抑制状态 错误NETSDK1136 目标平台必须设置为Windows 通常 通过在 TargetFramewor
  • 向量和常量

    考虑一下这个 void f vector
  • OpenCV:处理每一帧

    我想使用 OpenCV 编写一个跨平台应用程序进行视频捕获 在所有示例中 我发现来自相机的帧是使用抓取功能进行处理并等待一段时间 我想处理序列中的每一帧 我想定义自己的回调函数 每次当一个新帧准备好处理时都会执行该函数 例如直播对于 Win
  • ASP.NET Core中间件如何进行DI?

    我正在尝试将依赖项注入到我的中间件构造函数中 如下所示 public class CreateCompanyMiddleware private readonly RequestDelegate next private readonly
  • 从资源文件获取 DisplayName [重复]

    这个问题在这里已经有答案了 我在 App GlobalResources 文件夹中有特定于文化的资源文件 现在我需要从此资源文件中读取 DisplayName 属性的值 我在用 Display Name MerchantName Resou
  • 为什么一个结构体,如果没有显式的默认构造函数,则无法编译将另一个结构体作为成员包装在联合体中的结构体?

    这就是我所说的关系 struct A int i 1 struct B union A a void main B b 在这个星座中 我的编译器 vs2015 抱怨 B 的默认构造函数B B void 被删除 并附有编译器已生成的注释B B
  • 隐式类型转换 - 编译器错误

    这个问题与this https stackoverflow com questions 3529449 can i make the ternary operator treat my class like a bool问题 下面的代码在V
  • C++ 从文件中读取字符串

    我试图将字符串直接存储到一个文件中 以便稍后在 C 中读取 基本上 对于整个范围 我试图将带有字符串变量的对象数组存储在文件中 并且这些字符串变量将通过类似 object 的内容读取 0 字符串 然而 每次我尝试读取字符串变量时 系统都会给
  • 绑定未正确更新用户控件属性 MVVM

    编辑 删除旧代码 我将它放在 MainWindow xaml 上
  • 将整个单词与特殊字符匹配的正则表达式不起作用? [复制]

    这个问题在这里已经有答案了 我正在经历这个问题C Regex Match 整个单词 https stackoverflow com q 1209049 443568 它说要匹配整个单词使用 b模式 b 这对于匹配没有任何特殊字符的整个单词效
  • wpf中的图像问题(图像不显示)

    我不明白为什么我无法在 WPF 中显示图像 也许我不小心修改了我的资源文件夹 这就是我没有显示的原因 所以我创建了一个新的 wpf 应用程序 我有这个 当我运行该程序时 我的图片显示为 为什么当我尝试在程序中执行相同的操作时 图像没有显示
  • 在 C++11 中设置 std::thread 优先级的可移植方法

    在后 C 11 世界中设置 std thread 实例的优先级的正确方法是什么 是否有一种至少在 Windows 和 POSIX Linux 环境中有效的可移植方法 或者是获取句柄并使用可用于特定操作系统的任何本机调用的问题 无法通过 C

随机推荐

  • SwiftUI中如何让SceneView的背景清晰?

    我在 SwiftUI 中显示一个 3D 对象 但在使对象的背景清晰时遇到问题 我已经搜索过 但没有找到任何解决方案 有什么解决办法吗 private var scene SCNScene SCNScene named Globe scnas
  • 如何禁用 Windows 窗体 DataGridView 中单元格文本的省略号?

    我在 NET 3 5 Visual Studio 2008 WinForms 应用程序中有一个处于只读模式的 DataGridView 细胞的宽度非常小 有些单元格包含一个短数字 现在 即使使用小字体 有时也会用省略号显示数字 例如 8 代
  • 页面加载时闪亮的提交按钮行为

    提交按钮很有用 但我还没有找到一种优雅的方法来抑制初始页面加载时的输出 例如 Shiny 教程在加载时渲染输出 http rstudio github com shiny tutorial more widgets http rstudio
  • 数组中 graphql 对象类型的 GraphQL 字段

    我在这里定义了一个 graphQL 对象 const graphql require graphql const GraphQLObjectType require graphql const ProductType new GraphQL
  • Firebase 云消息传递功能 sendToDevice 不起作用

    我使用以下代码通过 FCM 将通知从一台设备发送到另一台设备 一切正常 直到之前return admin messaging sendToDevice 令牌 ID 日志显示接收者的令牌 ID 但是当我将变量 token id 设置为 sen
  • 如何使用 jaxb.in​​dex 文件?

    我越来越 javax xml bind JAXBException org example mypackage doesnt contain ObjectFactory class or jaxb index 在尝试创建一个JAXBCont
  • 使用 git smudge/clean 替换文件内容

    我正在尝试使用 git 来管理对我的实时网站的部署 我遇到的问题是 我有几个设置文件 当我推送到生产环境时我不想更新它们 我正在做的是使用钩子或涂抹 清理来更改文件内容 例如
  • 未定义方法 PDO lastInsertId

    我有一个插入查询 我想从表中获取 ID 我一直在寻找 我找到了 PDO 的 lastInsertId 当我想使用它时 我收到 PHP 错误 这是我的代码 db new database naam db gt quoteQuery POST
  • 结果 MVC 4 处理日期、淘汰绑定

    upshot js 如何处理 DateTime 对象 看起来它只是创建 普通 字符串 而不是创建真正的 JS 日期对象 所有与 JSON 日期格式化和 MVC 相关的问题都已在此处讨论 使用 Asp Net MVC 和 KnockoutJS
  • 对于不测试其代码的开发人员,您会怎么做? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我们的一位开发人员不断地编写代码并将其放入版本控制中而不进行测试 我们的代码质量因此受到影响 除了摆脱开发商之外 我还能如何解决这个问题呢 EDIT
  • 在 Scala/akka 中记录到文件:ClassNotFoundException:akka.event.slf4j.Slf4jLoggingFilter

    我已经搜索了很多 但找不到有效的解决方案 有人可以帮我吗 akka event handlers akka event slf4j Slf4jEventHandler loggers akka event slf4j Slf4jLogger
  • .NET 4.0 中的 Assembly.LoadFrom() 权限

    我在将应用程序从 NET 3 5 迁移到 4 0 时遇到安全问题 我有一个应用程序可以从映射到 z Z MyApp App exe 的网络共享成功启动 此应用程序使用加载项 有时会要求从 Intranet 上的单独位置加载程序集 y MyL
  • “<”标记之前预期的构造函数、析构函数或类型转换

    我是 C 新手 我似乎无法弄清楚是什么导致了这些错误 以下是我的头文件 ifndef TABLE define TABLE include
  • 什么是活动内存和非活动内存[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么是活动记忆和非活动记忆 我正在执行命令vmstat a在 Linux 机器上 我得到以下输出 vmstat a procs memor
  • 如何将 Segment.io 服务器和客户端事件连接到同一匿名用户?

    我正在致力于在现有 NET 电子商务应用程序上实现 Segment 分析中心 以便与 Mixpanel 以及其他一些服务一起使用 我了解 Analytics js 和 Segment NET API 的 API 文档 但我很困惑如何将匿名事
  • 可以在 Google Charts 中生成该 Char 吗?

    我有一个快速的问题 可以在 Google Charts 中生成该 Char 吗 也许你知道该怎么做 有什么建议或什么 Chart1 https i stack imgur com m8tJ3 png 图表下方的白色区域非常重要 这是可能的
  • Spring WS 无效内容类型

    我有一个 Spring WS 客户端 我通过 wsimport 生成了 WSDL 存根 当我尝试发送请求时 收到无效内容类型异常 严重 SAAJ0537 内容类型无效 可能是错误消息而不是 SOAP 消息 线程 main org sprin
  • 使用 Axios 从 http 响应下载 PDF

    我正在开发一个带有 Laravel 后端 API 的 Vue 应用程序 单击链接后 我想调用服务器来下载某个文件 大多数情况下是 PDF 文件 当我做一个get请求与axios我在回复正文中收到了一份 PDF 作为回报 我想直接下载该文件
  • 如何使用 webpack 分别捆绑供应商和主脚本?

    我真的很感谢这里的一些帮助 在这种情况下 我想在最终的构建操作中将我的供应商 js 和我的 main js 分开 我之前尝试过在我的 package json devDependency 中循环分离我的第三方库并将其放入供应商 js 中 它
  • 强制仅从 DataReader 返回单行

    我似乎在我的代码中写了很多这样的内容 using var reader cmd ExecuteReader if reader Read result new User int reader UserId reader UserName T