O que é Entity Framework Core e por que ele é necessário
\nEntity Framework Core (EF Core) é um mapeador objeto-relacional (ORM) moderno para a plataforma .NET, desenvolvido pela Microsoft. Ele permite que os desenvolvedores trabalhem com bancos de dados usando objetos .NET, eliminando a necessidade de escrever grande parte do código de acesso a dados.
\n\nEF Core é uma versão leve, extensível e multiplataforma do Entity Framework. Ele suporta vários SGBDs, incluindo SQL Server, SQLite, PostgreSQL, MySQL, Oracle e outros.
\n\nPrincipais recursos do EF Core:
\n- \n
- Criação e atualização automática do esquema do banco de dados com base no modelo (Code First) \n
- Execução de consultas ao banco de dados usando LINQ (Language Integrated Query) \n
- Rastreamento automático de alterações em objetos e geração de comandos SQL para atualização de dados \n
- Suporte a migrações para gerenciar alterações no esquema do banco de dados \n
- Suporte a relacionamentos entre entidades (um-para-um, um-para-muitos, muitos-para-muitos) \n
- Carregamento lento, ansioso e explícito de dados relacionados \n
Instalação do Entity Framework Core
\nA instalação do EF Core é feita através do NuGet Package Manager. Diferente do Python, aqui se usa dotnet add package ou o gerenciador de pacotes do Visual Studio.
Instalação via .NET CLI:
\ndotnet add package Microsoft.EntityFrameworkCore\ndotnet add package Microsoft.EntityFrameworkCore.SqlServer\ndotnet add package Microsoft.EntityFrameworkCore.Tools\n\nInstalação para PostgreSQL (Npgsql):
\ndotnet add package Npgsql.EntityFrameworkCore.PostgreSQL\n\nInstalação para SQLite:
\ndotnet add package Microsoft.EntityFrameworkCore.Sqlite\n\nInstalação para MySQL:
\ndotnet add package Pomelo.EntityFrameworkCore.MySql\n\nInício rápido com exemplo de código
\nVamos criar um aplicativo de console simples para trabalhar com um banco de dados de livros.
\n\n1. Criando o modelo de dados:
\npublic class Book\n{\n public int Id { get; set; }\n public string Title { get; set; }\n public string Author { get; set; }\n public int Year { get; set; }\n public decimal Price { get; set; }\n}\n\npublic class Author\n{\n public int Id { get; set; }\n public string Name { get; set; }\n public List<Book> Books { get; set; } = new();\n}\n\n2. Criando o contexto do banco de dados:
\npublic class LibraryContext : DbContext\n{\n public DbSet<Book> Books { get; set; }\n public DbSet<Author> Authors { get; set; }\n\n protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)\n {\n optionsBuilder.UseSqlite("Data Source=library.db");\n }\n}\n\n3. Usando EF Core para trabalhar com dados:
\nusing var context = new LibraryContext();\ncontext.Database.EnsureCreated(); // Cria o banco de dados, se não existir\n\n// Adicionando dados\nvar author = new Author { Name = "Lev Tolstói" };\nauthor.Books.Add(new Book { Title = "Guerra e Paz", Year = 1869, Price = 1500m });\nauthor.Books.Add(new Book { Title = "Anna Karenina", Year = 1877, Price = 1200m });\n\ncontext.Authors.Add(author);\ncontext.SaveChanges();\n\n// Lendo dados\nvar books = context.Books\n .Where(b => b.Year > 1850)\n .OrderBy(b => b.Year)\n .ToList();\n\nforeach (var book in books)\n{\n Console.WriteLine($"{book.Title} ({book.Year})");\n}\n\nPrincipais métodos e funções do Entity Framework Core
\n\n1. Add
\nDescrição: Adiciona uma nova entidade ao contexto no estado Added. Ao chamar SaveChanges(), um comando INSERT será executado.
\nParâmetros:
\n- \n
object entity
Também na biblioteca
Envio de email em C++: libcurl e clientes SMTP
Envio de email em Swift (iOS/macOS): MFMailComposeViewController e SMTP
Trabalhando com Excel em C++: bibliotecas e ferramentas para leitura e escrita
WebSocket em C++: bibliotecas e aplicação prática
Trabalho com imagens em Rust: redimensionar e cortar com a biblioteca image