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