2016-08-12 108 views
2

首先在EF代码中,我想从一个表中删除一列&,然后删除另一个表。从EF CodeFirst迁移中删除表

从类文件中删除一列后,自动生成一个迁移文件。

但是如何删除表格。

需要发射什么命令?我是否需要删除完整的类文件&还从上下文文件中删除以下行?

public DbSet<TableClassName> TableClassNameSet { get; set; } 

我使用添加移植'TableClassName'命令。

那么删除表格的最佳方法是什么?

回答

0

要删除表格,您可以在DBMigration类别的Down()方法中使用DropTable("YourTable")

另请参阅以下链接以获取有关如何自定义迁移的更多示例。

https://msdn.microsoft.com/en-au/data/jj591621.aspx#customizing

+0

使用DropTable是正确的,但它可能更好地调整模型。 另外这个问题似乎是关于删除一个不撤消迁移表。 Down()用于反转最新的迁移。所以根据我的理解,在这种情况下代码应该在Up()中。 –

+0

@MikaelEliasson是的,谢谢。完成:) –

3

如果你只是在最后的移民所做的更改,可以rollback,移民。否则,只需调整您的模型,并在下次迁移时找到更改。要删除表格,只需删除相应的DbSet<MyClass>以及在模型的其他部分对该类的任何引用,EF将自动将DropTable添加到迁移。如果您不再将该类用于非实体框架目的,则可以将其删除。