有一个名为Northwind的现有数据库,带有一个webform应用程序.在运行应用程序时引发错误:'无效的列名称CategoryCategoryID'.谁帮帮我?提前致谢!!
Category.cs:
public class Category
{
public int CategoryID { get; set; }
// public int ID { get; set; }
public string CategoryName { get; set; }
public string Description { get; set; }
public byte[] Picture { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Product.cs:
public class Product
{
public int ProductID { get; set; }
//public int ID { get; set; }
public string ProductName { get; set; }
public Decimal? UnitPrice …Run Code Online (Sandbox Code Playgroud) 我们已经将现有数据库转换为使用EF,因此我们编写类来映射到我们的表.我添加了一个新列,一个名为'iframeVideoId'的可空int.我用它绘制了它
public int? iframeVideoId { get; set; }
Run Code Online (Sandbox Code Playgroud)
当我搜索那张桌子的时候,它爆炸了
无效的列名称'错误
.这是一个简单的属性,它不是索引或与任何其他表相关.我尝试将它在DB中重命名为' DisplayVideo',并使其不可为空.然后我有
[Column("DisplayVideo")]
public int iframeVideoId { get; set; }
Run Code Online (Sandbox Code Playgroud)
现在我收到DisplayVideo不是有效列的错误.当然,我已经仔细检查过我指向正确的数据库,并确认我的代码COULD指向的每个数据库都有此列.我也做了一个干净的重建,并重新启动了我的机器.可能有什么不对?这是一个基本专栏,它就在那里.我从过去的经验中知道,如果类型不匹配(它们都是int),我会得到与类型之间转换失败相关的错误.这对我来说毫无意义.我没有要刷新的edmx文件,因为我们正在编写类来直接映射到DB
只是添加,我将列更改为字符串,它没有任何区别.这是一个新的专栏,具有简单的价值,EF声称它不存在.
并且,我将列添加到另一个表(显然是次优的),并且它立即工作.我仍然想知道为什么我有一个表我不能在EF中添加列