Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rafaelbortolozo/csharp_ef_training

Treinamento de Entity Framework, curso da plataforma Balta.io.
https://github.com/rafaelbortolozo/csharp_ef_training

balta-io csharp dotnet entity-framework

Last synced: about 1 month ago
JSON representation

Treinamento de Entity Framework, curso da plataforma Balta.io.

Awesome Lists containing this project

README

        

# Curso de Entity Framework (EF) com C# e .NET

## Requisitos
- .NET Core 5.0
- .NET Core 6.0
- Azure Data Studio
- SQL Server Express (Windows)
- Docker com SQL Server (Windows, Mac, Linux)

## Comandos
Instalação do docker com SQL Server, segue tutorial do Balta
```
https://balta.io/blog/sql-server-docker
```

Instalação EF core
```
dotnet add package Microsoft.EntityFrameworkCore -v 5.0.10
```

Instalação EF core SQL Server
```
dotnet add package Microsoft.EntityFrameworkCore.SqlServer -v 5.0.10
```

Cria uma pasta como novo projeto
```
dotnet new console -o
```

Cria uma pasta e especifica qual sdk usar (use "dotnet new console -h" para mais informações)
```
dotnet new console -o -f net5.0
```
```
dotnet new console -o -f net6.0
```

Lista e instala todas as dependencias
```
dotnet restore
```

Inicia compilação
```
dotnet build
```

Limpa arquivos de cache
```
dotnet clean
```

Roda aplicação localmente
```
dotnet run
```

Roda aplicação emum determinado ambiente de execução
```
dotnet run --environment=
```

Cria arquivo .gitignore para postagem no github
```
dotnet new gitignore
```

Listar sdks instaladas
```
dotnet --list-sdks
```

## Curiosidades do EF
- ORMs permite o mapeamento dos objetos do C# para um banco de dados relacional. O EF tem algumas funcionalidades de conversão de objetos, como do banco relacional para um objeto do C#, desde que há um "interface".
- EF oferece diversas funcionalidades adicionais em relação ao Dapper.
- Abordagem Database First consiste em não manipular o banco, mas mapear as entidades com um banco já criado.
- Abordagem Code/Model First consiste em trabalhar primeiro no código e gerar um banco de dados com código (migrations). É um modelo amplamente usado pois aí a regra de negócio fica no código, o banco vai servir pra somente persistir dados.
- EF é baseado em contextos, necessita apenas de um DataContext pra funcionar. Esse DataContext define um banco de dados em memória, tendo a aplicação uma velocidade muito maior em relação a um disco de banco. DbSet são subconjuntos de dados, representando as tabelas. A ideia é pegar no banco, carregar e trabalhar em memoria, desce pro banco, sem sobrecarregar a memoria.
- Models contém as representações dos objetos do banco de dados.
- A partir do momento que você aplica um .ToList() no contexto, a lista virá do BANCO e não da memoria da aplicação.
- Cuidado ao aplicar condicional junto com o ToList, sempre deixar este comando no final, caso contrario toda as informações serão baixadas e depois são filtradas, o que acaba ferrando em ambos os lados.
- Use .AsNoTracking() APENAS para leituras, pois o tracking só é necessário caso haja uma alteração nos dados.