我已经将其范围缩小到 Code First 和 Database first 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/

10-16 03:39