返回 AsAsyncEnumerable() 时出现 ObjectDisposeException

2023-12-04

在我的 .NET Core 3 WebAPI 项目中,我有以下简单的方法调用:

[HttpGet("ViewerRoles")]
public IAsyncEnumerable<ViewerRole> GetViewList() {
    using var db = new MpaContext();

    return db.ViewerRoles.AsAsyncEnumerable();
}

这向我抛出了一个 ObjectDisposeException。AsAsyncEnumerable()相对较新,我找不到任何适当的示例来说明如何在这种情况下使用它。我应该删除using关键字和实体框架数据库连接神奇地自行处置?还是还有别的伎俩?


你有两个选择。要么枚举IAsyncEnumerable在你的里面GetViewList method:

[HttpGet("ViewerRoles")]
public async IAsyncEnumerable<ViewerRole> GetViewList()
{
    using var db = new MpaContext();
    await foreach (var item in db.ViewerRoles.AsAsyncEnumerable().ConfigureAwait(false))
    {
        yield return item;
    }
}

...或安装System.Interactive.Async封装并使用静态AsyncEnumerableEx.Using method:

[HttpGet("ViewerRoles")]
public IAsyncEnumerable<ViewerRole> GetViewList()
{
    return AsyncEnumerableEx.Using(() => new MpaContext(),
        db => db.ViewerRoles.AsAsyncEnumerable());
}

这是该人的签名AsyncEnumerableEx.Using method:

public static IAsyncEnumerable<TSource> Using<TSource, TResource>(
    Func<TResource> resourceFactory,
    Func<TResource, IAsyncEnumerable<TSource>> enumerableFactory)
    where TResource : IDisposable;

不幸的是,似乎没有该库的在线文档。

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

返回 AsAsyncEnumerable() 时出现 ObjectDisposeException 的相关文章

  • Windows 服务应用程序中自托管 ASP.NET Web API 的问题

    我在网上看到了一些文章 描述了如何在 Windows 服务应用程序中自行托管 ASP NET Web API 请参阅here http www piotrwalat net hosting web api in windows servic
  • 删除是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 C 编程 free 如何知道要释放多少 https stackoverflow com questions 1518711 c programming how does free know how m
  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • linq 中使用字符串数组 c# 的 'orderby'

    假设我有一个这样的方法定义 public CustomerOrderData GetCustomerOrderData string CustomerIDs var query from a in db Customer join b in
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 为什么'enable_if'不能用于禁用这里声明

    include
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 使用 dotnet pack 包含所有依赖项

    有什么办法可以强制dotnet pack包含所有引用的程序集 project json 中的所有依赖项 我相信这是相关的 https github com dotnet cli issues 1290 https github com do
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • C++ 中 void(*)() 和 void(&)() 之间的区别[重复]

    这个问题在这里已经有答案了 在此示例代码中 func1是类型void int double and funky是类型void int double include
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c

随机推荐

  • 如何在 Objective-C 中创建和使用队列?

    我想在我的 Objective C 程序中使用队列数据结构 在 C 中我会使用 STL 队列 Objective C 中等效的数据结构是什么 如何推送 弹出项目 Ben 的版本是堆栈而不是队列 所以我对其进行了一些调整 NSMutableA
  • Selenium:打开扩展的弹出窗口

    我正在尝试使用 Selenium 为我的扩展编写 E2E 测试 对于我的测试 我需要打开扩展程序的弹出页面 就好像用户单击扩展程序的徽标 位于浏览器的右下角 一样 我已经成功地使用扩展程序初始化了 ChromeDriver 方法是 Chro
  • 用于集成 Microsoft 单元测试框架 (VS2017) 的 CMake

    与我之前的问题类似 但专门针对 Microsoft 单元测试框架 Visual Studio 2017集成了C 单元测试 MS单元测试 google测试等 如何创建一个 CMakeLists txt 文件来创建这样一个项目 该项目将使用集成
  • 简单 AOP 示例中的 UnsupportedPointcutPrimitiveException

    我尝试运行一个简单的 aop 示例this地点 我有 spring aop 和aspectj aspectjweaver jars Aspect public class StringAspect Pointcut call String
  • iOS:只调用一个方法一次

    您好 我想知道如何在应用程序生命周期中仅调用一次方法 我的应用程序应该从服务器下载一些文件 而我只需要执行一次 我的意思是每次安装一次 这是我的方法 Download some images from server and save it
  • Eclipse Struts 2 Hibernate JPA 配置

    我正在使用 Eclipse 构建一个 Web 应用程序 我想在其中使用框架 Struts 2 和 Hibernate 这次我没有使用 Maven 只是因为我想知道如果我不使用 Maven 如何让它工作 Version 支柱2 5 休眠5 2
  • SignalR 和 OpenId 连接

    我有一个使用的服务器ASP NET Core Web Api and OpenIddict作为授权框架 现在我添加了一个SignalR主机并想为其添加授权 From 不同来源我找到SignalR JS 客户端 希望您在查询字符串中或通过 c
  • 更新 DOM 时相对定位的元素不会移动(IE6 和 IE7)

    我有一个带有几个字段集的表单 一个字段集具有用户设置的时间偏好表 用户可以添加和删除时间偏好 当他们添加一行时 表行会使用 jQuery 动态插入到 DOM 中append 问题在于 在 IE6 和 IE7 中 添加新的表格行时 页面上任何
  • 处理页错误陷阱后的指令指针值

    老实说 我真的对这个特定的虚拟内存相关概念感到困惑 Q1 当发生页错误时 处理器是否先完成当前指令的执行 然后将 IP 寄存器内容 下一条指令的地址 移入堆栈 或者 它中止当前正在执行的指令并将指令指针寄存器的内容移至堆栈 Q2 如果第二种
  • Kivy 时钟和弹出窗口

    如何正确为 switch id 和 switch id popup 创建活动属性 以便我可以使用 kivy 时钟在timer loop内部创建条件语句 我在类似的问题上得到了很好的反馈 再次感谢 eyllanesc 但由于涉及弹出窗口 我无
  • 通过Jsoup下载的网页源与实际的网页源不一样

    我对此感到严重关切 我已经搜索了堆栈溢出和许多其他网站 他们在每个地方都给出相同的解决方案 我已经尝试了所有这些 但我无法解决这个问题 我有以下代码 Document doc Jsoup connect url timeout 30000
  • Xamarin.Forms 中可重用的 XAML 控件

    我写了一篇不错的Grid与其他一些控件 例如 Entry and Image现在我想以最简单的方式重用它 这是我的控制Email财产
  • 将可枚举 linq 列表转换为类型化列表

    我遇到以下问题 我使用 linq 以这种方式过滤一些数据 var listPerson from objPerson in ListPerson select new objPerson IdPerson objPerson ApePers
  • Python - TypeError:浮点对象不可调用错误

    到目前为止已经得到以下代码 class beam object def init self E I L self E E self I I self L L self Loads 0 0 0 0 Force distance along b
  • 标题标签内的sup标签html

    我需要注册商标作为工具提示中的上标 我尝试使用sup标题标签内 p title Hello World p 但我明白了sup在工具提示中 如何确保忽略sup标签并且R在工具提示内显示为上标 Use reg 反而 你也许也可以写
  • 内存映射文件有哪些优点?

    我一直在研究一个项目的内存映射文件 并且非常感谢以前使用过它们或决定不使用它们的人的任何想法 为什么 我特别担心以下问题 按重要性排序 并发性 随机访问 表现 使用方便 可移植性 我认为优点实际上是与传统的读取文件方法相比 减少了所需的数据
  • 使用 PHPMailer 发送 unicode 表情符号

    我正在尝试通过 PHPMailer 5 2 发送 unicode 表情符号 但我发送的电子邮件收到的是奇怪的字符而不是表情符号 我目前正在发送 HTML 电子邮件 我刚刚echo包含一些 utf 8 表情符号的字符串并检查电子邮件源 该字符
  • 拖放多个文件的批处理文件?

    我希望能够完成与下面类似的事情 但是使用 pcutmp3 拖放多个文件的批处理文件 我很难理解 Joey 所做的添加 因为我通常不这样做 但我想将多个文件 cue 放在一个批处理文件上并让它运行多次 这就是批处理文件中的以下行发生 echo
  • 致命错误:C 中超出了 30 秒的最大执行时间:[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我对这个错误感到非常震惊 根本无法得到它 Fatal
  • 返回 AsAsyncEnumerable() 时出现 ObjectDisposeException

    在我的 NET Core 3 WebAPI 项目中 我有以下简单的方法调用 HttpGet ViewerRoles public IAsyncEnumerable