gpt4 book ai didi

python - Entity Framework : Update multiple objects only if all objects exist

转载 作者:行者123 更新时间:2023-12-04 09:41:21 26 4
gpt4 key购买 nike

我正在写一个 PATCH C# 中的 REST API 使用 Entity Framework 更新多个对象中的特定字段。
请求正文:

{
"ids": [
"id1",
"id2"
],
"foo": "bar"
}

我想更新所有对象的 foo场待吧, 但前提是所有对象都存在。

我试图通过没有检查所有对象是否存在的抢先选择来保持它的清洁(顺便说一句,这可能不够好,因为如果一个对象现在存在并不意味着它在几毫秒后仍然存在)。

我正在寻找一个简短的解决方案,如果其中一个对象没有成功更新(或不存在),它将回滚并引发异常。
我发现的唯一解决方案是打开一个事务并在循环中更新每个对象,恕我直言,这不是最好的方法,因为我不想一次访问数据库的每一行。

实现这一点的最佳方法是什么?

最佳答案

DbContext.SaveChanges 方法返回写入的条目数。
在更新的情况下,它将返回更新的行数。

所以你想做的是:

  • 开始新的交易
  • 对所有 ID 一起执行单个更新查询
  • 检查 SaveChanges 的返回值, 和 Commit如果它与您查询中的 ID 数量匹配,或者 Abort除此以外。
  • 关于python - Entity Framework : Update multiple objects only if all objects exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62316819/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com