如何确认异步 EF6 wait db.SaveChangesAsync() 是否按预期工作?

2023-11-27

我的代码如下所示:

    public async Task<IHttpActionResult> Delete(int id)
    {
        var userId = Int32.Parse(User.Identity.GetUserId());   
        UserTest userTest = await db.UserTests.FindAsync(id);
        if (userTest == null)
        {
            return NotFound();
        }
        if (userTest.UserId != userId)
        {
            return Unauthorized();
        }
        db.UserTests.Remove(userTest);
        await db.SaveChangesAsync();
        return Ok();
    }

我认为 db.SaveChangesAsync 之前的一切都可以,但是在执行 return Ok() 之前如何确认 db.SaveChangesAsync 是否有效?理想情况下,我认为我应该检查异常和其他事情,但我不确定如何将其放入此代码块中。


来自msdn:

public virtual Task<int> SaveChangesAsync()

返回值 类型:System.Threading.Tasks.Task 一个任务 代表异步保存操作。任务结果包含 写入底层数据库的对象数量。

检查结果是否大于0:

if(await db.SaveChangesAsync() > 0)
{
     .....
}

更多信息请点击这里

另一种选择是将其包装为try ... catch block:

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

如何确认异步 EF6 wait db.SaveChangesAsync() 是否按预期工作? 的相关文章

  • asp.net 页面的 preinit 事件

    我是 ASP NET 新手 我有一个 aspx 页面 我必须在其 PreInit 事件中编写一些代码 从我在页面上找到 PreInit 事件的地方 当我们双击按钮来获取按钮单击事件 或从属性窗格中选择按钮并选择事件 请尽快回复我 老兄 你为
  • 如何克服 NeatUpload 对象引用错误?

    安装 NeatUpload http neatupload codeplex com http neatupload codeplex com 并将演示放到我的服务器 Windows Server 2008 和 IIS7 上 当我在组合框中
  • 如何将 ComboBox 添加到 ASP.NET 未绑定的 GridView

    我想知道如何将 ComboBox 列添加到未绑定的 GridView通过运行时的代码 以编程方式 我过去使用过以下实现 ITemplate 的类 但用于 DropDown 和 CheckBox 绑定 public class AddTemp
  • ASP.Net - 每次单击按钮时都会调用 Page_Load 和 Page_Init?

    所以我的代码中完全没有逻辑 我有两种方法Page Init Page Load 每次我单击按钮时都会调用这两种方法 调用 Page load 是有意义的 但是为什么每次都会调用Page Init呢 protected void Page I
  • 为什么我必须将 Async 包装到另一个异步工作流程中并让!它?

    我试图了解 F 中的异步工作流程 但我发现有一部分我真的不明白 下面的代码工作正常 let asynWorkflow async let result Stream TryOpenAsync partition gt Async Await
  • 子文件夹中忽略 ASP.NET web.config 授权设置

    我正在使用 asp net mvc 2 和 vs 2008 我正在尝试制作具有表单授权的网站 当我尝试限制对某些页面的访问时 我正在使用 asp net 管理工具 例如 我创建规则来拒绝匿名用户访问整个网站 正如预期的那样 管理工具在根 w
  • System.MissingMethodException:找不到方法?

    以前工作的 ASP NET WebForms 应用程序现在抛出此错误 System MissingMethodException 找不到方法 The DoThis方法位于同一个类上 它应该可以工作 我有一个这样的通用处理程序 public
  • 会话不会保留值并始终返回 null

    我有一个网站 它完全通过 HTTPS 即使有人尝试通过 HTTP 访问 他也会被重定向到 HTTPS 我正在使用表单身份验证 最近 我更改了一个设置以使站点更安全 之后会话不保留值并且始终返回 null 设置是
  • 是否可以在 ApplicationServices DB 中对电子邮件地址进行加密?

    为了在我正在进行的项目中保持电子邮件地址的私密性 提高安全性 我希望对存储在数据库中的所有电子邮件进行加密 但是 我们使用的是 Asp Net Membership 提供程序 并且电子邮件以明文形式显示在表 aspnet Membershi
  • 如何在qt中进行异步文件io?

    我想知道如何在qt中实现异步文件io 这在普通的 qt 中是否可以实现 或者有人需要使用另一个库 例如 libuv 来实现这样的事情 我正在查看 QDataStream 但即使它是一个 流 它也不是非阻塞的 我想一种解决方案是制作一个在内部
  • 用于动态视图数据/表单的 ASP.Net MVC 编辑器模板

    我正在实现一个 MVC3 Razor Web 应用程序 该应用程序检索用户可以从其他服务编辑的一些 字段 因此要在视图中编辑的属性列表是完全动态的并且在编译时未知 我编写了一些部分视图和 HTML 帮助程序 它们循环从其他服务检索到的组和属
  • 字节数组到 Excel 工作簿

    我正在尝试将字节数组转换为 Excel 工作簿 当我这样做时 Response BinaryWrite renderedBytes 它工作正常并且文件符合预期 但是当我尝试用我在网上找到的这个来做到这一点时 private Object B
  • 静默地将 api 资源移动到另一个 url

    我已经用 WepApi 2 编写的 api 与主网站紧密结合 我决定将其与另一个网络应用程序解耦 以使事情更加隔离 我遵循了这样的步骤 将所有 API 控制器提取到另一个项目 创建属性以将当前使用旧 URL 的所有用户重定向到新 URL 由
  • 处理响应后使用 Amazon S3 响应流

    我正在使用 Amazon SDK 并且有一个方法可以为存储在 Amazon S3 服务中的对象返回 Stream 它包含这样的内容 var request new GetObjectRequest WithBucketName bucket
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 使用 System.Timer 和 TreeView 时访问 UI 线程

    我有一个 TreeView 其中一些节点有一个包含 IP 地址的标记属性 TreeView 有一个 ImageList 其中包含 3 个条目 一个红色圆圈 一个绿色圆圈和一个橙色圆圈 我想每 x 秒 ping 一次相应的 IP 地址 我目前
  • 当我的 ASP.NET MVC 应用程序中的模型为 null 时,EditorFor(..) 引发异常

    我有一个非常简单的 ASP NET MVC 视图 它有一个简单的string作为模型 eg model string 当我执行以下操作时 如果模型值为null 当用户第一次登陆此视图 页面 资源时发生 Value cannot be nul
  • 我什么时候真正需要 InamingContainer 接口?

    我在 MSDN 中读到 InamingContainer 是一个用于创建唯一名称的标记接口 什么时候才真正有必要呢 坦率地说 当您的控件有一个带有 id 的子控件时 这是必需的 虽然您可以在单个页面上使用控件的多个实例 但您必须用INami
  • 使用 HttpHandler 或 HttpModule 上传大文件?

    我有一个网络表单应用程序 它需要能够上传大文件 100MB 我打算使用 httpHandler 和 httpModule 将文件拆分为chunk 我也看过http forums asp net t 55127 aspx http forum
  • 图片 URL 正确,但图片未显示

    我在 GoDaddy 上有一个网站 所有权限均已正确设置并且图像确实存在 但是 当页面加载时 所选项目的图像不会显示 这是我的代码 imagepath spaimages currentSpaModel Name ToString png

随机推荐