我们已将现有数据库转换为使用 EF,因此我们编写类以映射到我们的表。我添加了一个新列,一个名为“iframeVideoId”的可为空的 int。我用它映射它
public int? iframeVideoId { get; set; }
当我搜索那张桌子时,它会炸毁一个'
无效的列名错误
. 这是一个简单的属性,它不是索引或与任何其他表相关。我尝试在 DB 中将其重命名为“ DisplayVideo
”,并使其不可为空。然后我有
[Column("DisplayVideo")]
public int iframeVideoId { get; set; }
现在我收到一个错误,即 DisplayVideo 不是有效的列。当然,我已经仔细检查了我指向正确的数据库,并确认我的代码可以指向的每个数据库都有这个列。我还完成了清理和重建所有工作,并重新启动了我的机器。有什么问题?这是一个基本的专栏,它就在那里。我从过去的经验中知道,如果类型不匹配(它们都是 int ),我会收到与类型之间转换失败有关的错误。这对我来说毫无意义。我没有要刷新的 edmx 文件,因为我们正在编写类以直接映射到数据库
只是补充一下,我将列更改为字符串,这没有区别。这是一个新列,具有简单的值,而 EF 声称它不存在。
而且,我将该列添加到另一个表中(显然是次优的),它立即就可以正常工作了。不过,我仍然想知道为什么我有一个无法在 EF 中添加列的表