是否可能以及如何使用 Entity Framework 核心创建触发器

Is it possible and how create a trigger with Entity Framework Core

是否可以使用 Entity Framework 核心创建 SQL 触发器。

也许可以使用

中的说明
protected override void OnModelCreating(DbModelBuilder dbModelBuilder)
{
}

或者只需在迁移脚本中执行 SQL 语句

public override void Up()
{
}
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.Sql(@"create trigger .....");
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.Sql(@"drop trigger <triggerName>");
    }

Laraue.EfCoreTriggers 用于创建 SQL 触发器的包通过流畅的语法允许执行插入、更新、更新插入、删除、如果不存在则在触发器像这样工作后插入语句

modelBuilder.Entity<Transaction>()
    .AfterInsert(trigger => trigger
        .Action(triggerAction => triggerAction
            .Upsert(transaction => new { transaction.UserId },
                insertedTransaction => new UserBalance { UserId = transaction.UserId, Balance = insertedTransaction.Sum },
                (insertedTransaction, oldBalance) => new UserBalance { Balance = oldBalance.Balance + insertedTransaction.Sum })));
            

此代码将被翻译成 sql 并应用到使用

的迁移
migrationBuilder.Sql()