实体框架:删除列后无效的列

时间:2012-07-25 11:00:00

标签: c# entity-framework

我在实体框架中映射了一个表,可以很好地添加/更新和删除记录。我从SQL服务器中删除了一个名为“Category”的列,然后在模型中重新映射了我的实体。这个工作正常,专栏消失了。

现在,我在表上运行查询以更新行并获得相同的错误,无效的列“类别”。

这已经从SQL表中删除并从实体中删除了,所以当我运行以下代码时它仍然在寻找这个该死的列吗?

using (Entities db = new Entities())
                { 
                       var Voucher = (from vouchers in db.Vouchers
                                 where vouchers.ID == ID
                                 select vouchers).FirstOrDefault();

                       if (Voucher != null)
                       {
                           Voucher.Status = (int)Vouchers.UI.Enums.VoucherStatus.Removed;                           
                           ret = db.SaveChanges() == 1;
                       }
                } 

这是错误:

无效的列名称“类别”。

我已经清理了代码,构建,重新构建并更新了大约100次。

有没有人有任何想法?

由于

6 个答案:

答案 0 :(得分:22)

从* .EDMX文件中删除该表,然后将该表再次添加到* .EDMX文件

答案 1 :(得分:7)

我曾经也删除并重新添加表,但从来没有这样。 我宁愿做什么。我关闭模型。右键单击并以XML格式打开,然后手动删除此引用。 因此,它使我的多个图表在一个模型中保持相同,也保持我定义的颜色。

答案 2 :(得分:4)

无需从* .EDMX文件中删除整个表,只需从* .EDMX文件中删除不必要的字段即可。它帮助了我

答案 3 :(得分:2)

我也遇到过与设计视图.edmx文件中删除列相关的问题。其他选项是帖子前面提到的删除表并将其重新添加到.edmx文件中的内容。

答案 4 :(得分:0)

另一种解决方案是在Entity Framework图中找到表,然后删除“类别”(Category)列并保存模型文件。

答案 5 :(得分:0)

enter image description here

打开Edmx->右键单击表格列->选择从模型中删除