如果有任何错误,Entity-Framework是否可以应用所有挂起的迁移TRANSACTIONALLY并回滚?

时间:2017-12-12 21:16:58

标签: c# .net sql-server entity-framework linq-to-sql

我们说我有迁移

Initial.cs
foo.cs
bar.cs
baz.cs

我的数据库是最新的"同步"申请

Initial.cs
foo.cs

我想做的是相当于

Try applying bar.cs and then baz.cs, all in a transaction. If it fails, roll back.

是否可以使用带有参数的Update-Databasemigrate.exe,还是请求特殊的Powershell脚本甚至是自定义C#逻辑?

1 个答案:

答案 0 :(得分:0)

我认为这不可行,但您可以轻松恢复以前的迁移,因为EF允许:

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.12.0/d3.min.js"></script>

<svg width="600" height="180"></svg>

您甚至可以使用连接开关在已应用迁移问题的Dbs上执行此操作:

Update-Database -TargetMigration "PreviousMigrationIdentifer"
-ConnectionProviderName "System.Data.SqlClient" -Force