gpt4 book ai didi

c# - Entity Framework 6 迁移是否可以包含围绕脚本的事务?

转载 作者:太空狗 更新时间:2023-10-29 22:58:13 24 4
gpt4 key购买 nike

非常简单的问题,我在 Entity Framework 6 中使用迁移,并且喜欢命令

update-database -script

但是有没有一种方法可以生成脚本但用事务包装它?

问题是如果脚本失败,我必须取消选中它

最佳答案

这是我仅在 Release模式下用于生成脚本的内容:

public class MigrationScriptBuilder : SqlServerMigrationSqlGenerator
{
#if !DEBUG
protected override void Generate(SqlOperation sqlOperation)
{
Statement("GO");

base.Generate(sqlOperation);

Statement("GO");
}

public override IEnumerable<MigrationStatement> Generate(IEnumerable<MigrationOperation> migrationOperations, string providerManifestToken)
{
yield return new MigrationStatement {Sql = "BEGIN TRAN"};

foreach (var migrationStatement in base.Generate(migrationOperations, providerManifestToken))
{
yield return migrationStatement;
}

yield return new MigrationStatement {Sql = "COMMIT TRAN"};
}
#endif
}

您应该将其连接到您的 DatabaseMigrationsConfiguration 中。示例:

public sealed class DatabaseMigrationsConfiguration : DbMigrationsConfiguration<DatabaseContext>
{
public DatabaseMigrationsConfiguration()
{
SetSqlGenerator("System.Data.SqlClient", new MigrationScriptBuilder());
}
}

关于c# - Entity Framework 6 迁移是否可以包含围绕脚本的事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32014118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com