Configurando o Entity Framework Core com Fluent API
Ao trabalhar com o Entity Framework Core, existem convenções que são feitas no EF. No entanto, às vezes você pode desejar não seguir essas convenções e fazer algo diferente. As duas maneiras de fazer isso são usando Annotations e FluentAPI.
Exemplos de convenções
Algumas das convenções feitas pelo EF Core incluem:
- Chave Primária: Propriedades chamadas
IDou<nomeclasse>Id</nomeclasse>são automaticamente configuradas como chaves primárias. - Colunas: O EF Core cria colunas para todas as propriedades de uma classe de entidade com o mesmo nome da propriedade por padrão.
Configurando o Model
A configuração do modelo é feita usando a classe ModelBuilder, que é uma Fluent API. Com essa classe, podemos configurar o mapeamento do modelo dos bancos de dados. Isso inclui o schema padrão, funções do banco de dados, atributos adicionais de Data Annotation e entidades a serem excluídas do mapeamento.
Configurando a Entidade
A configuração da entidade é feita usando a classe Entity. Essa classe é responsável por configurar as tabelas da entidade e mapear os relacionamentos.
Configurando a Propriedade
A configuração da propriedade é feita usando a classe Property. Essa classe é responsável por configurar as propriedades do mapeamento da coluna, incluindo nome, valor padrão, nullabilidade, tipo de dados, coluna de concorrência, entre outros.
Exemplos de aplicações
O Fluent API é particularmente útil quando precisamos personalizar configurações que vão além das anotações de atributos nas classes, como por exemplo:
- Configurações avançadas de relacionamentos
- Configurações não suportadas por Data Annotation
- Configurações globais e reutilizáveis
- Definição de tipos de propriedade
- Validações complexas
Reflexo no Banco de Dados SQL
A seguir, é apresentado o exemplo de como o código C# é refletido no banco de dados SQL:
CREATE TABLE Telefone (
Id INT PRIMARY KEY,
DDD VARCHAR(3),
Numero VARCHAR(9),
TipoTelefoneID INT,
RestauranteID INT
);
Conclusão
O Fluent API é um recurso mais avançado que o Data Annotation e é útil quando precisamos personalizar configurações que vão além das anotações de atributos nas classes. Isso permite maior flexibilidade e controle sobre o mapeamento entre as entidades e o banco de dados.
Perguntas Frequentes (FAQs)
Q: O que é o Fluent API?
A: O Fluent API é uma classe que é usada para configurar o mapeamento do modelo dos bancos de dados no Entity Framework Core.
Q: Qual é a diferença entre Fluent API e Data Annotation?
A: A Data Annotation é um recurso mais simples que é usado para decorar classes com anotações para configurar o mapeamento, enquanto o Fluent API é um recurso mais avançado que é usado para configurar o mapeamento de forma programática.
Q: Quando usar Fluent API?
A: Você deve usar o Fluent API quando precisar personalizar configurações que vão além das anotações de atributos nas classes, como configurações avançadas de relacionamentos, configurações não suportadas por Data Annotation, configurações globais e reutilizáveis, definição de tipos de propriedade e validações complexas.

