Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
Actualización de DbContext frente a EntityState modificada

¿Cuál es la diferencia entre ' _context.Entry(entity).State = EntityState.Modified ' y ' _context.Entity.Update(entity) ' en ASP.NET EF Core? Por ejemplo:

 [HttpPut] public async Task<ActionResult<Student>> PutStudent(Student student) { _context.Entry(student).State = EntityState.Modified; await _context.SaveChangesAsync(); return student; }
 [HttpPut] public async Task<ActionResult<Student>> PutStudent(Student student) { _context.Student.Update(student); await _context.SaveChangesAsync(); return student; }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Establecer el estado de una entidad en Modified marcará todas las propiedades escalares de la entidad como modificadas, lo que significa que SaveChanges generará una declaración de actualización que actualizará todos los campos de la tabla asignada, excepto los campos clave.

No se pregunta, pero una sola propiedad también se puede marcar como Modified :

 _context.Entry(student).Property(s => s.Name).IsModified = true;

Esto también establecerá el estado de la entidad como modificado.

El método de Update es bastante diferente, consulte los documentos :

Comienza a rastrear la entidad dada (...)
Para los tipos de entidad con claves generadas, si una entidad tiene establecido su valor de clave principal, se rastreará en el estado Modificado. Si el valor de la clave principal no está establecido, se rastreará en el estado Agregado. Esto ayuda a garantizar que se insertarán nuevas entidades, mientras que las entidades existentes se actualizarán. Se considera que una entidad tiene establecido su valor de clave principal si la propiedad de la clave principal se establece en cualquier valor que no sea el valor predeterminado de CLR para el tipo de propiedad.

Esto puede ser muy conveniente en escenarios desconectados en los que se adjuntan entidades nuevas y actualizadas a un contexto. EF averiguará qué entidades se Added y cuáles se Modified .

Otra diferencia es que el método Update también atraviesa entidades anidadas. Por ejemplo, si Exams es una colección en la clase Student , actualizar un Student también marcará sus Exams como Modified o Added donde sus claves no están configuradas.

No está documentado, pero vale la pena mencionarlo, si un Student y sus Exams se adjuntan como Unchanged , entonces el método Update solo establecerá el estado del Student en Modified , no los Exams .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda