我们有我们的迁移,并且我们有一个在每次迁移运行后执行的种子方法。
如果种子方法失败,我可以回滚种子数据,但我还想在代码中回滚“update-database”语句以将数据库结构恢复到之前的状态。
这可能吗?
一些代码:
internal sealed class Configuration : DbMigrationsConfiguration<TheContext>
{
protected override void Seed(TheContext context)
{
//Set a bunch of entities
using (var transaction = new TransactionScope())
{
try
{
context.SaveChanges();
transaction.Complete();
}
catch (Exception ex)
{
//TODO: How do I rollback the last Update-Database command?
throw;
}
}
}