gpt4 book ai didi

c# - Entity Framework - 无效的列名 '*_ID"

转载 作者:IT王子 更新时间:2023-10-29 03:40:28 25 4
gpt4 key购买 nike

我已将此问题缩小为代码优先和数据库优先 EF 之间的某个问题,但我不确定如何解决它。我会尽量说清楚,但老实说,我自己在这里也缺少一些理解。这是 Entity Framework 4.4

我继承了一个使用 Entity Framework 的项目,但许多实际文件已被删除,无法返回。我重新添加了 EF(首先是数据库)并复制了项目构建所围绕的 T4 设置。它生成了所有数据库模型的代码版本和一个 DBContext 代码文件。

如果我的连接字符串看起来像“普通”.NET 连接字符串,我会收到有关无效列名称“ProcessState_ID”不存在的错误。 ProcessState_ID 根本不在代码库中,它不在 EDMX 文件或任何东西中。这似乎是查询中的一些自动 EF 转换。

当我使连接字符串与 Entity Framework 模型匹配时,它工作正常。

现在,在尝试将之前的代码与 Entity Framework 相匹配时,我想保留“正常”的 .NET 连接字符串。

所以我有两个问题:1. 在代码中从普通连接字符串到 EF 连接字符串的好方法是什么?2. 这里是否有另一个我没有看到的修复来阻止无效的列名错误?

最佳答案

检查您是否有任何 ICollections。

我发现当您有一个引用表的 ICollection 并且没有它可以计算出的列时,它会为您创建一个以尝试在表之间建立连接。这特别发生在 ICollection 中,并且让我“疯狂”地试图弄清楚。

关于c# - Entity Framework - 无效的列名 '*_ID",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19959256/

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