Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用EF6.0中的代码优先方法从sql表中删除列?_Sql_Asp.net Mvc_Entity Framework - Fatal编程技术网

如何使用EF6.0中的代码优先方法从sql表中删除列?

如何使用EF6.0中的代码优先方法从sql表中删除列?,sql,asp.net-mvc,entity-framework,Sql,Asp.net Mvc,Entity Framework,由于错误,我现在在数据库中添加了一列,名为doj,如果我想使用代码优先的方法从表中删除该列,我应该怎么做 我已经试过了 1-从模型中删除列定义。 2-已删除迁移历史记录。 3-添加迁移 4-更新数据库 但它仍然没有反映在数据库中?我在哪里犯的错误?你应该这样做 1-)从模型中删除列定义。 2-)构建您的项目 3-)添加迁移 4-)更新数据库 您不应该删除迁移历史记录。 删除列时请小心,因为表中的数据可能会丢失数据。无需删除迁移历史记录 只需遵循以下步骤 1: Remove properties

由于错误,我现在在数据库中添加了一列,名为
doj
,如果我想使用代码优先的方法从表中删除该列,我应该怎么做

我已经试过了

1-从模型中删除列定义。
2-已删除迁移历史记录。
3-添加迁移
4-更新数据库

但它仍然没有反映在数据库中?我在哪里犯的错误?

你应该这样做 1-)从模型中删除列定义。 2-)构建您的项目 3-)添加迁移 4-)更新数据库

您不应该删除迁移历史记录。
删除列时请小心,因为表中的数据可能会丢失数据。

无需删除迁移历史记录

只需遵循以下步骤

1: Remove properties from the model.
2: Run 'Enable-Migrations' in package manage console.
3: Next Run 'Add-Migration "MigrationsName"'. if any case it is showing 'The project  tesproject failed to build then build project again.
4: Now run 'Update-Database' 

这将对您的代码产生严重影响。尽管Neeraj的答案是正确的,而且在大多数情况下效果很好,但如果该列中包含以前的数据,则该列将从索引中删除,但数据仍将存在(就此而言,该列也是如此)

要完全删除列(及其数据),请使用
DropColumn()
方法。要完成此操作,请创建一个新的迁移
addmigration unwantedColumnCleanup
,并在
up()
方法中包含必要的代码,然后
更新数据库

namespace MyDB.Migrations
{
  using System;
  using System.Data.Entity.Migrations;

  public partial class unwantedColumnCleanup : DbMigration
  {
    public override void Up()
    {
        DropColumn("Table", "Column");
    }

    public override void Down()
    {
    }
  }
}

别担心,实际上我遇到的问题和你需要做的是一样的。

1:从为创建该列而添加的类中删除属性。
2:在Visual Studio中打开包管理器控制台
3:您已经启用了迁移,因此无需再次运行,但由于某些原因,如果您收到启用迁移的消息,只需运行Enable Migrations(启用迁移)
4:运行更新数据库-TargetMigration:“迁移”

其中,第4点中的迁移是为添加列而添加的迁移的名称


希望它能帮助你

是否删除了数据库中的迁移表?只需删除模型中的列并删除迁移表,如果该列不起作用,只需删除包含该列的表。如果要将代码发布到test/prod server,则会返回错误,因为其中包含数据。如何忽略这一点并强制其删除列?验证项目生成本应是一件轻而易举的事,但在看到这一点后,更正了不支持的Resharper工具,然后我的生成成功并能够更新。谢谢@Demster