【问题标题】:Entity Framework 6 Update from Database ignores deleted columns, type changesEntity Framework 6 Update from Database 忽略已删除的列、类型更改
【发布时间】:2014-03-20 20:41:39
【问题描述】:

我错过了什么吗?

我有一个 .net 4.5.1 项目,其实体框架模型通过“ADO.NET 实体数据模型”从 SQL 2005 数据库(连接类型也是 SQL Server)创建。

这很好用。也就是说,直到我更新数据库。如果我向现有表添加新表或列,一切都很好,但如果我删除一列,更新就无法正常工作。当我更改列类型时,它也会抛出错误。

很久以前就报告过同样的问题:http://blog.jongallant.com/2012/08/entity-framework-manual-update.html#.UytNrvldVD0,但它看起来太荒谬了,我不敢相信我没有错过任何东西。我肯定做错了什么吗?如何让模型正确更新?

【问题讨论】:

  • 如果删除表格并重新读取会怎样?
  • 我希望这会起作用,但我在过去几周一直在进行更新,保存,然后 VS 吐出错误,所以我知道要手动删除哪些字段模型。更新过程能够更改字段大小(例如 varchar(20) -> varchar(50))。

标签: sql sql-server entity-framework


【解决方案1】:

我也有同样的问题。我打开了模型,从图中删除了更改的表,然后从数据库中更新并重新添加了表。 EF 以正确的结构再次将表带回。保存模型,重建项目,一切都按预期进行。

我不确定为什么它没有检测到已删除的列。我相信如果你改变列的数据类型也会有问题,但我没有测试过。但到目前为止,上述解决方案对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多