我错误地在我的数据库中添加了一个列,现在命名为doj
如果我想使用代码首先从表中删除该列,我应该怎样做。
我试过这件事。
1-从模型中删除列定义
2-已删除的迁移历史记录
3-添加迁移
4-更新数据库。
但它还没有在数据库中反映出来吗?我犯了错误的地方?
答案 0 :(得分:5)
虽然Neeraj的答案是正确的,并且在大多数情况下效果很好,如果该列中包含以前的数据,它将从索引中删除,但数据仍然存在(就此而言就是列)。
要完全删除列(及其中的数据),请使用DropColumn()
方法。要完成此操作,请创建新的迁移add-migration unwantedColumnCleanup
并在up()
方法中包含必要的代码,然后update-database
。
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 :(得分: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'
它会严重影响您的代码。使用MSDN
答案 2 :(得分:1)
您不应删除迁移历史记录。 当你删除列时要好心,因为你可能会丢失表中数据的数据。
答案 3 :(得分:0)
实际上我不必担心我遇到的问题就是你需要做的事情。
1:从您为创建该列添加的类中删除该属性
2:在Visual Studio中打开包管理器控制台。
3:您已经启用了迁移,因此无需再次运行,但出于某种原因,如果您要获取启用迁移的消息,请运行启用 - 迁移
4:运行 update-database -TargetMigration:“Migration”
其中第4点的迁移是您为添加列而添加的迁移的名称。
希望它会对你有所帮助。
答案 4 :(得分:0)
在 Asp.net core 中应用迁移(更新数据库)后删除列非常简单。请按照以下步骤操作:
刷新您的数据库,您将看到更改。