Olá pessoal, meu nome é Mauricio Junior e hoje eu vou mostrar um código essencial para que seja colocado em seu projeto para não haver erros. O problema é simples, eu estou usando C# com Entity Framework e na tabela do database existe uma trigger que é executada toda vez que a tabela sofre alguma alteração ou inserção de um novo valor.
Como o meu código precisa atualizar a tabela, é necessário criar um OnModelCreating método override para que não tenha problemas de atualizar ou colocar novo valor.
É necessário colocar o nome da trigger que será executada para a tabela e assim não haverá erro quando o Entity Framework executar algo lá.
Então vou mostrar o código
Veja o código abaixo mostrando a classe com o DbContext.
using Application.Core.Entities;
using Microsoft.EntityFrameworkCore;
public class SqlContext : DbContext
{
public SqlContext(DbContextOptions<SqlContext> options) : base(options)
{
}
public DbSet<TaskItem> TaskItems { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TaskItem>().ToTable(tb => tb.HasTrigger("UPDATE_COMPLETED_OPERATIONS"));
}
}
Código 1 - DbContext
Nome que existe uma classe chamada TaskItems e é lá que eu preciso informar que existe uma trigger.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TaskItem>().ToTable(tb => tb.HasTrigger("TRIGGER_NAME"));
}
Código 2 - Trigger
O código 2 mostra o que precisa fazer para informar que a trigger será executada na operação com a classe TaskItems. É o método override com o nome OnModelCreating e lá é bom colocar o modelBuilder com o nome da classe e o parâmetro tb.HasTrigger("Trigger_Name")
com o nome da trigger existente no database.
Dessa forma o EF não vai retornar nenhum erro e vai funciona perfeitamente.
Espero que tenha gostado e qualquer dúvida pode entrar em contato comigo.
Informo que existem vários cursos dentro da plataforma ecode10.academy onde você pode aprender com os exemplos do dia a dia, passo a passo usando metodologia ativa de aprendizado (CBL).