所以是我两年一次清理我的开发环境的时候了,所以我备份了数据库,格式化了驱动器并重新安装了软件。
除了从 sql express 到 localDB 的变化外,开发环境没有重大变化。
然而,在我恢复数据库后,我很快注意到实体框架拒绝做任何事情,只是从中读取。当我试图删除一些东西时,我得到了这个:
无法删除该对象,因为它在 ObjectStateManager 中找不到。
所以当谷歌搜索时,我发现了在 dbContext 的不同实例中处理对象的问题。因此,通过确保我在一个电话中使用相同的电话,它再次开始工作。
但是,我不确定是什么触发了这种变化的行为。在重置我的计算机之前,我尝试了使用 dbContext 的单例实例,该实例有效,但由于多线程问题而被推荐反对。然后,我快速破解了它,每次针对 EF 上的每一个操作都返回一个新实例,这实际上工作得很好,尽管我现在不明白它是如何工作的,因为我经历了当前的失败。
所以我的问题是,触发这种新行为的环境变化可能是什么,这让我无法(完全可以理解)为每个 EF 操作使用新的 dbContext ?