gpt4 book ai didi

entity-framework - EF 迁移声称上下文发生了变化,但实际上没有

转载 作者:行者123 更新时间:2023-12-02 02:12:26 25 4
gpt4 key购买 nike

我正在使用 Entity Framework Migrations & Code First,最近遇到了一个非常奇怪的问题。该问题在版本 4.3.1 和 4.4 中重现。

EF 认为上下文已更改,但实际上并没有。当我更改解决方案的路径时会发生这种情况。例如:如果我的解决方案位于 C:\integration\something.sln 中,迁移可能会工作,但如果现在我将路径更改为 C:\development\something.sln 并重新构建解决方案,迁移将抛出一个异常,说明有数据库中的未决更改。 (当然没有对源代码做任何改动。

我使用 IL Disassembler 创建了输出程序集的转储,而使用 BeyondCompare,我发现存在差异。我假设数据是相同的,但它的写入顺序不同......

EF 如何确定上下文是否发生变化?程序集校验和是否有可能出现不同并导致 EF 认为发生了变化?

欢迎提出任何想法...

最佳答案

首先,这不是迁移问题 - 它可能是 Entity Framework 算法中的错误,用于检查数据库中是否有更改。

我有一个类层次结构,其中包含一个没有属性的抽象类,使该类不抽象就解决了问题。

在获得一些宝贵的调试经验后,我找到了几种解决这个问题的方法,每一种都比之前的方法引起了更多的关注,这让我非常确信我陷入了一个非常罕见的角落案例。正如我提到的,我决定通过创建一个非抽象类来解决问题。

我试图在一个干净的解决方案中重现该错误,以便我可以将其发送给 Microsoft,但直到现在它还没有真正起作用。

所以...总而言之,如果您发现自己遇到这样的问题(非常令人沮丧),一个好的建议是寻找抽象类!

关于entity-framework - EF 迁移声称上下文发生了变化,但实际上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12164063/

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