gpt4 book ai didi

entity-framework - Entity Framework "Invalid Column Name"

转载 作者:行者123 更新时间:2023-12-03 07:37:30 24 4
gpt4 key购买 nike

我们已将现有数据库转换为使用 EF,因此我们编写类来映射到我们的表。我添加了一个新列,一个名为“iframeVideoId”的可为 null 的 int。我用它映射了

public int? iframeVideoId { get; set; }

当我搜索该表时,它会出现“

invalid column name' error

。这是一个简单的属性,它不是索引,也不与任何其他表相关。我尝试将数据库中的它重命名为“DisplayVideo”,并使其不可为空。然后我就有了

[Column("DisplayVideo")]
public int iframeVideoId { get; set; }

现在我收到一条错误消息,显示 DisplayVideo 不是有效列。当然,我已经仔细检查过我是否指向正确的数据库,并确认我的代码可以指向的每个数据库都有此列。我还完成了所有清理和重建,并重新启动了我的机器。可能出什么问题了?这是一个基本专栏,就在那里。我从过去的经验中知道,如果类型不匹配(它们都是 int ),我会收到与类型之间转换失败相关的错误。这对我来说根本没有意义。我没有要刷新的 edmx 文件,因为我们正在编写直接映射到数据库的类

只是补充一下,我将列更改为字符串,这没有什么区别。这是一个新列,具有简单的值,EF 声称它不存在。

而且,我将该列添加到另一个表中(显然不是最理想的),它立即就正常工作了。不过,我仍然想知道为什么我的表无法在 EF 中添加列

最佳答案

由于复制/粘贴情况,我的映射类出现错误。如您所见,将 TranferredToEVP 映射到 3 个不同的列。我在最后一列 TranferredToGUID 上收到“无效的列名称”,但正在寻找 TranferredToGUID1。希望这可以帮助。

this.Property(t => t.TransferredToEVP).HasColumnName("TransferredToEVP");
this.Property(t => t.TransferredToEVP).HasColumnName("TransferredToName");
this.Property(t => t.TransferredToEVP).HasColumnName("TransferredToGUID");

关于entity-framework - Entity Framework "Invalid Column Name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469878/

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