返回 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 的相关文章

  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 如何在 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