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