如果我在已删除的实体上调用EF Reload,会发生什么情况?

约翰·亨克尔

我正在尝试实现乐观并发,

while (true) {
    var e = db.MyTable.FirstOrDefault();
    try {
         // make changes to e
         db.SaveChanges();
         return;
    } catch (DBConcurrencyException ex) {
         db.Entry(e).Reload();
         if (e == null) return;    // <===  this can't be right?!
    }
}

如果在我对e进行更改时,另一项作业从数据库中删除了该行,会发生什么情况。会发生什么?SaveChanges会成功吗?

或者,如果在重新加载之前,另一个作业删除了该行怎么办?在这种情况下,重新加载会将e设置为null吗?还是Reload会抛出异常?我整理了文档,但找不到任何提示。

EVK

SaveChanges无法成功-行已不再存在,因此无任何更新。如果成功意味着您将默默地继续下去,那么也不会-它会抛出DbUpdateConcurrencyException(请注意,不会 DBConcurrencyException陷入示例中)。

如果您Reload删除了实体,则实体的状态为Detacheddb.Entry(e).State)。方法调用不能将您的e变量设置为null,即使原则上也不能将其设置为null ref

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果不将字体嵌入Flash,会发生什么情况?

来自分类Dev

如果rm在提示中途停止,会发生什么情况?

来自分类Dev

如果不关闭Docker容器,会发生什么情况?

来自分类Dev

调用exec()时,线程会发生什么情况?

来自分类Dev

在Git中删除分支时会发生什么情况

来自分类Dev

如果我合并删除了我新功能的代码的提交,会发生什么情况?

来自分类Dev

如果从类文件中删除超级构造函数调用,会发生什么情况?

来自分类Dev

Matlab OOP:当在数组属性上调用get函数时,会发生什么情况?

来自分类Dev

如果获取互斥锁之后发生中断,会发生什么情况

来自分类Dev

如果方法A调用方法B并且都具有[Transaction]属性,会发生什么情况?

来自分类Dev

如果我在Spark中两次缓存相同的RDD,会发生什么情况?

来自分类Dev

如果我为一个中断创建多个ISR,会发生什么情况?

来自分类Dev

如果我在GCC中编译并链接到不需要的库,会发生什么情况?

来自分类Dev

如果我在estimateRigidTransform或getAffineTransform中提供更多输入,会发生什么情况?

来自分类Dev

如果我们在App Delegate中的didFinishLaunching中返回NO,会发生什么情况

来自分类Dev

如果我在PHP函数的末尾不包含“返回”,会发生什么情况?

来自分类Dev

如果我们不关闭用过的末端管道,会发生什么情况:Linux / C

来自分类Dev

如果我将dropna更改为True / False,会发生什么情况

来自分类Dev

如果我尝试使用SetObject并且已经拥有相同的密钥,会发生什么情况?

来自分类Dev

如果我在GA中发送“自定义维度”配置,会发生什么情况?

来自分类Dev

如果我为一个中断创建多个ISR,会发生什么情况?

来自分类Dev

如果我在常规的Ubuntu安装上安装Ubuntu GNOME,会发生什么情况?

来自分类Dev

如果我在PHP函数的末尾不包含“ return”,会发生什么情况?

来自分类Dev

如果我的PSU突然无法提供足够的电源,会发生什么情况?

来自分类Dev

如果shutdown命令杀死了我的统一cron作业,会发生什么情况?

来自分类Dev

如果在我的java文件中使用了很多@SuppressWarnings,会发生什么情况?

来自分类Dev

如果我取消选中“软件和更新”中的所有PPA,会发生什么情况?

来自分类Dev

当我将unpack()作为lua的函数参数调用时,会发生什么情况?

来自分类Dev

iOS:当我从其他类调用重写的方法时,会发生什么情况

Related 相关文章

  1. 1

    如果不将字体嵌入Flash,会发生什么情况?

  2. 2

    如果rm在提示中途停止,会发生什么情况?

  3. 3

    如果不关闭Docker容器,会发生什么情况?

  4. 4

    调用exec()时,线程会发生什么情况?

  5. 5

    在Git中删除分支时会发生什么情况

  6. 6

    如果我合并删除了我新功能的代码的提交,会发生什么情况?

  7. 7

    如果从类文件中删除超级构造函数调用,会发生什么情况?

  8. 8

    Matlab OOP:当在数组属性上调用get函数时,会发生什么情况?

  9. 9

    如果获取互斥锁之后发生中断,会发生什么情况

  10. 10

    如果方法A调用方法B并且都具有[Transaction]属性,会发生什么情况?

  11. 11

    如果我在Spark中两次缓存相同的RDD,会发生什么情况?

  12. 12

    如果我为一个中断创建多个ISR,会发生什么情况?

  13. 13

    如果我在GCC中编译并链接到不需要的库,会发生什么情况?

  14. 14

    如果我在estimateRigidTransform或getAffineTransform中提供更多输入,会发生什么情况?

  15. 15

    如果我们在App Delegate中的didFinishLaunching中返回NO,会发生什么情况

  16. 16

    如果我在PHP函数的末尾不包含“返回”,会发生什么情况?

  17. 17

    如果我们不关闭用过的末端管道,会发生什么情况:Linux / C

  18. 18

    如果我将dropna更改为True / False,会发生什么情况

  19. 19

    如果我尝试使用SetObject并且已经拥有相同的密钥,会发生什么情况?

  20. 20

    如果我在GA中发送“自定义维度”配置,会发生什么情况?

  21. 21

    如果我为一个中断创建多个ISR,会发生什么情况?

  22. 22

    如果我在常规的Ubuntu安装上安装Ubuntu GNOME,会发生什么情况?

  23. 23

    如果我在PHP函数的末尾不包含“ return”,会发生什么情况?

  24. 24

    如果我的PSU突然无法提供足够的电源,会发生什么情况?

  25. 25

    如果shutdown命令杀死了我的统一cron作业,会发生什么情况?

  26. 26

    如果在我的java文件中使用了很多@SuppressWarnings,会发生什么情况?

  27. 27

    如果我取消选中“软件和更新”中的所有PPA,会发生什么情况?

  28. 28

    当我将unpack()作为lua的函数参数调用时,会发生什么情况?

  29. 29

    iOS:当我从其他类调用重写的方法时,会发生什么情况

热门标签

归档