Questão nº 26
Questão de Tecnologias da Informação · FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) (nº 26)
Entity Framework (EF) é um framework Object-Relational Mapping (ORM) de código aberto para aplicações .NET. Utilizando esse framework no desenvolvimento de uma aplicação web, um profissional de Tecnologia da Informação definiu o modelo (model) da aplicação (classes de domínio, classes de contexto e configurações). Depois, para salvar uma entidade no banco de dados, ele adicionou um objeto de domínio a um contexto e chamou o método
- A`ExecuteUpdate()` da classe `DbTransaction`.
- B`SaveChanges()` da classe `DbContext`. (alternativa correta)
- C`InsertData()` da classe `DbConnection`.
- D`ExecuteQuery()` da classe `DbContext`.
- E`InsertRecord()` da classe `DbTransaction`.
Resposta comentada
Gabarito Alternativa B
Entity Framework (EF) é uma ferramenta que permite que seu programa .NET interaja com um banco de dados usando objetos (como um `Cliente` ou `Produto`) em vez de comandos SQL diretos. Para que as mudanças feitas nesses objetos (como adicionar um novo cliente) sejam salvas no banco de dados, você precisa usar um método específico do EF.
(A) Incorreta: `DbTransaction` é usado para gerenciar transações no banco de dados, garantindo que um conjunto de operações seja executado como uma única unidade atômica. `ExecuteUpdate()` não é um método padrão para persistir entidades no Entity Framework; ele se assemelha mais a comandos de baixo nível para executar SQL direto, e não para salvar objetos mapeados pelo ORM. A armadilha aqui é que "Update" soa como "salvar mudanças", mas o método e a classe não são os corretos para a persistência de entidades via EF.
(B) Correta: `SaveChanges()` da classe `DbContext` é o método fundamental no Entity Framework para persistir todas as mudanças (adições, atualizações e exclusões) feitas nas entidades que estão sendo rastreadas pelo contexto para o banco de dados.
(C) Incorreta: `DbConnection` representa uma conexão aberta com o banco de dados em um nível muito baixo. `InsertData()` não é um método padrão do `DbConnection` nem do Entity Framework para salvar entidades.
(D) Incorreta: `ExecuteQuery()` (ou métodos similares como `FromSqlRaw` no EF Core) é usado para executar consultas SQL diretas e recuperar dados do banco de dados, mapeando-os para objetos. Não é usado para salvar (inserir, atualizar ou deletar) dados.
(E) Incorreta: Assim como na alternativa A, `DbTransaction` é para gerenciamento de transações. `InsertRecord()` não é um método padrão do `DbTransaction` nem do Entity Framework para salvar entidades.
Fonte: FCC SEFAZ-SC 2018 - Conhecimentos Específicos (P3) Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.