🔥 Articles, eBooks, Jobs, Columnist, Forum, Podcasts, Courses 🎓



Trigger usando Entity Framework

Veja como funciona

entity-framework

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).

Subscribe ecode10.com

Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.

Log In





Related articles




Top