Domine o EF Core: Guia Prático para Acesso a Dados
Domine o Raw SQL no EF Core: Guia Completo e Prático
Imagine que você tem uma consulta
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. superespecífica, precisa bater direto em uma view ou até mesmo executar uma procedure legada que a sua equipe construiu anos atrás. Nesses casos, o Entity Framework Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. com LINQ pode não suprir todas as necessidades ou gerar consultas
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. extremamente complexas. É nesse momento que o Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. entra em cena: ele permite que você escreva SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. na mão, mas
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. ainda aproveite as vantagens de tracking, mapeamento de objetos e outras funcionalidades do EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real..
Abaixo, exploraremos quando
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. e por que usar o Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias., como executá-lo e quais cuidados você deve ter com performance
🔄 StringBuilder: Quando Concatenar Strings Vira um Pesadelo!Descubra como o StringBuilder otimiza a concatenação em C#, evitando desperdício de memória e melhorando a performance das aplicações. Veja exemplos práticos! e segurança ao misturar diretamente SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. no seu código .NET.
Tabela de Conteúdo🔗
1. Quando
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. Usar Raw SQL?
2. Executando Consultas
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. Raw SQL
4. Cuidados de Segurança e Performance
🔄 StringBuilder: Quando Concatenar Strings Vira um Pesadelo!Descubra como o StringBuilder otimiza a concatenação em C#, evitando desperdício de memória e melhorando a performance das aplicações. Veja exemplos práticos!
5. Métodos para Executar
🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. SQL no EF Core
6. Mapeamento de Resultados Complexos
7. Vantagens e Riscos do Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias.
8. Boas Práticas
🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados. na Execução de SQL
9. Caso Real
📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável.: Relatório de Vendas Complexo
Quando Usar Raw SQL?🔗
Algumas situações em que você pode considerar o Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. no EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real.:
- Consultas
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. Complexas: Se o LINQ
🔍 LINQ Básico: Filtre Dados como um Garimpeiro Digital!Descubra como o LINQ facilita o processamento de dados em C#. Filtre, ordene e transforme coleções com precisão e eficiência no seu código. não oferece flexibilidade suficiente ou gera queries pouco eficientes. - Operações Específicas de Banco: Você pode precisar de recursos
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. específicos do SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. que o EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. não traduz bem. - Stored Procedures Legadas: Se a equipe de DBAs já criou procedimentos que não deseja (ou não pode) refatorar.
- Views e Funções
🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência.: Quando
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. você precisa se comunicar com objetos de banco além de tabelas e relacionamentos usuais.
Apesar disso, é importante usar Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. com parcimônia. Quanto mais você se afasta do modelo
🎭 MVVM: Separe Regras de Negócio da Interface Graficamente!Descubra como o padrão MVVM separa a interface e a lógica de negócio, facilitando testes e manutenção, com exemplos e dicas práticas para seu projeto. de queries do EF
Entity Framework e Async/Await: Lidando com Consultas ao Banco de DadosAprenda a utilizar async/await com Entity Framework para melhorar a escalabilidade, responsividade e performance em consultas e operações de dados., mais você perde a vantagem de um ORM
🗂️ Entity Framework Core: ORM que Faz Mágica com seu Banco!Aprenda a dominar o EF Core e simplifique suas operações de banco de dados com LINQ, migrações e mapeamentos automáticos, sem precisar escrever SQL. que gerencia mudanças de contexto, tracking, e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. otimizações automáticas.
Executando Consultas Raw SQL🔗
Para consultas
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. de leitura, o EF Core oferece métodos como FromSqlRaw e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. FromSqlInterpolated. Ambos permitem escrever comandos
🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. diretamente, mas
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. com diferentes níveis de segurança
🛡️ Segurança em SignalR: Autenticação e Autorização!Descubra como implementar JWT e autorização com roles e claims no SignalR, garantindo segurança e controle de acessos em tempo real..
Exemplo Prático
Suponha que você queira recuperar
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. produtos com Stock abaixo de um limite
Projeções avançadas e uso de sort, skip e limit em consultas complexasDescubra como otimizar consultas MongoDB com projeções avançadas, sort, skip e limit em C#, garantindo performance e eficiência em aplicações .NET. estabelecido:
// Exemplo de uso de FromSqlRaw
using (var contexto = new MeuDbContext())
{
var limite = 10;
var produtosComPoucoEstoque = contexto.Produtos
.FromSqlRaw("SELECT * FROM Produtos WHERE Stock < {0}", limite)
.ToList();
foreach (var produto in produtosComPoucoEstoque)
{
Console.WriteLine($"Produto: {produto.Nome}, Estoque: {produto.Stock}");
}
}
Observe que utilizamos "{0}" para indicar parâmetros
🎯 Sobrecarga de Métodos: Um Nome, Múltiplos Superpoderes!Aprenda sobre a técnica de sobrecarga de métodos no C# com exemplos e práticas recomendadas para melhorar a organização e legibilidade do seu código. que serão passados de forma segura, evitando SQL Injection
🚫 SQL Injection: Proteja suas Queries de Ataques Maliciosos!Aprenda a defender seu banco de dados utilizando técnicas como parameterized queries, ORM, validação e stored procedures contra SQL Injection.. Já no caso de FromSqlInterpolated, ficaria assim:
using (var contexto = new MeuDbContext())
{
var limite = 10;
var produtosComPoucoEstoque = contexto.Produtos
.FromSqlInterpolated($"SELECT * FROM Produtos WHERE Stock < {limite}")
.ToList();
// Resto do código igual
}
Nesse caso, o EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. faz o binding interno desses parâmetros
🎯 Sobrecarga de Métodos: Um Nome, Múltiplos Superpoderes!Aprenda sobre a técnica de sobrecarga de métodos no C# com exemplos e práticas recomendadas para melhorar a organização e legibilidade do seu código., mantendo a proteção necessária.
Chamando Stored Procedures🔗
Muitas aplicações antigas (ou mesmo modernas) armazenam lógica de negócio em stored procedures. Para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! chamá-las:
var codigoProduto = 5;
using (var contexto = new MeuDbContext())
{
var resultadoProcedure = contexto
.Produtos
.FromSqlRaw("EXEC MinhaStoredProcedure @CodigoProduto = {0}", codigoProduto)
.ToList();
// Processar resultado
}
Nesse exemplo, MinhaStoredProcedure retorna dados compatíveis com a entidade Produto. Se a stored procedure não retornar colunas que mapeiem exatamente para a entidade, é comum criar
🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados.
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. modelos
🎭 MVVM: Separe Regras de Negócio da Interface Graficamente!Descubra como o padrão MVVM separa a interface e a lógica de negócio, facilitando testes e manutenção, com exemplos e dicas práticas para seu projeto. específicos ou utilizar DTOs
📦 DTOs: Transforme Dados sem Bagunçar seu Modelo de Domínio!Descubra como os DTOs protegem o domínio, otimizam a comunicação entre camadas e garantem a segurança e eficiência nas integrações de sua API. para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! manter o código organizado.
Cuidados de Segurança e Performance🔗
Usar Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. é poderoso, mas
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. exige atenção a alguns pontos:
Sempre use parâmetros
🎯 Sobrecarga de Métodos: Um Nome, Múltiplos Superpoderes!Aprenda sobre a técnica de sobrecarga de métodos no C# com exemplos e práticas recomendadas para melhorar a organização e legibilidade do seu código.. Jamais concatene strings diretamente com valores do usuário.
2. Mapeamento de Entidades:
Verifique se as colunas retornadas pela query batem exatamente com as propriedades
⚡ Propriedades: Get e Set com Elegância (e sem Campos Privados Bagunçados)!Aprenda como utilizar propriedades em C# para encapsular dados, validar informações e manter um código organizado, seguro e de fácil manutenção. da entidade. Caso contrário, crie modelos específicos.
3. Manutenção:
- Queries complexas podem se tornar difíceis de ler e manter. Documente bem quando
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. o ORM
🗂️ Entity Framework Core: ORM que Faz Mágica com seu Banco!Aprenda a dominar o EF Core e simplifique suas operações de banco de dados com LINQ, migrações e mapeamentos automáticos, sem precisar escrever SQL. não é suficiente.
4. Transações:
Lembre-se de que, se sua consulta
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. fizer parte de uma operação maior, gerenciar transações pode ser mais trabalhoso do que em queries via LINQ
🔍 LINQ Básico: Filtre Dados como um Garimpeiro Digital!Descubra como o LINQ facilita o processamento de dados em C#. Filtre, ordene e transforme coleções com precisão e eficiência no seu código..
Ao escrever manualmente, você assume a responsabilidade de otimizar o SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias.. Ferramentas de profiling
Ferramentas de profiling: Medindo a performance e o consumo de memória do Native AOTDescubra como otimizar apps .NET com Native AOT. Monitore CPU e memória usando dotTrace, PerfView e outras ferramentas essenciais de profiling. e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. análise de plano de execução são suas aliadas.
Métodos para Executar SQL no EF Core🔗
FromSqlRaw - Para consultas
// Consulta parametrizada (proteção contra SQL Injection!)
var pedidos = await context.Pedidos
.FromSqlRaw("""
SELECT * FROM Pedidos
WHERE ClienteId = {0}
AND Status = {1}
""", clienteId, statusPedido)
.Include(p => p.Itens)
.ToListAsync();
ExecuteSqlRawAsync - Para comandos
// Atualização em massa (muito mais rápido que LINQ)
var linhasAfetadas = await context.Database.ExecuteSqlRawAsync(
"UPDATE Produtos SET Preco = Preco * 1.1 WHERE CategoriaId = {0}",
categoriaId);
SqlQuery (EF Core 7+) - Para tipos arbitrários
// Mapeando para DTO
var relatorio = await context.Database.SqlQueryRaw<RelatorioVendasDTO>(
"EXEC GetSalesReport @startDate, @endDate",
new SqlParameter("startDate", startDate),
new SqlParameter("endDate", endDate))
.ToListAsync();
Mapeamento de Resultados Complexos🔗
O EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. permite mapear resultados SQL para diferentes estruturas:
| Tipo de Retorno | Caso de Uso | Exemplo |
|---|---|---|
| Entidades Mapeadas | Quando o SQL retorna colunas compatíveis com a entidade | FromSqlRaw<Produto>(...) |
| DTOs Personalizados | Para projeções específicas ou stored procedures | SqlQuery<RelatorioDTO>(...) |
| Tipos Anônimos | Consultas rápidas (útil para testes) | context.Database.SqlQueryRaw<int>("SELECT COUNT() FROM ...") |
Exemplo avançado com junções:
public class PedidoDetalhadoDto
{
public int PedidoId { get; set; }
public string ClienteNome { get; set; }
public decimal Total { get; set; }
}
var query = """
SELECT p.Id AS PedidoId, c.Nome AS ClienteNome, SUM(i.Quantidade * i.Preco) AS Total
FROM Pedidos p
JOIN Clientes c ON p.ClienteId = c.Id
JOIN ItensPedido i ON p.Id = i.PedidoId
GROUP BY p.Id, c.Nome
""";
var resultados = await context.Database
.SqlQueryRaw<PedidoDetalhadoDto>(query)
.ToListAsync();
Vantagens e Riscos do Raw SQL🔗
✅ Vantagens:- Controle total sobre a query
- Acesso a funcionalidades específicas do SGBD
- Performance
🔄 StringBuilder: Quando Concatenar Strings Vira um Pesadelo!Descubra como o StringBuilder otimiza a concatenação em C#, evitando desperdício de memória e melhorando a performance das aplicações. Veja exemplos práticos! otimizada para casos críticos - Compatibilidade
🧠 Memory Management Avançado: Domine Span<T> e MemoryMarshal!Transforme seu código C# usando Span<T> e MemoryMarshal para manipulação eficiente de memória, reduzindo alocações desnecessárias e elevando a performance. com procedimentos armazenados
- Potencial para SQL Injection
🚫 SQL Injection: Proteja suas Queries de Ataques Maliciosos!Aprenda a defender seu banco de dados utilizando técnicas como parameterized queries, ORM, validação e stored procedures contra SQL Injection. se mal utilizado - Perda de abstração do ORM
🗂️ Entity Framework Core: ORM que Faz Mágica com seu Banco!Aprenda a dominar o EF Core e simplifique suas operações de banco de dados com LINQ, migrações e mapeamentos automáticos, sem precisar escrever SQL. - Dificuldade de manutenção
- Possíveis problemas de compatibilidade
🧠 Memory Management Avançado: Domine Span<T> e MemoryMarshal!Transforme seu código C# usando Span<T> e MemoryMarshal para manipulação eficiente de memória, reduzindo alocações desnecessárias e elevando a performance. entre bancos
⚠️ Para QAs: Testes de segurança são cruciais em queries SQL! Verifiquem sempre a parametrização.
Boas Práticas na Execução de SQL🔗
// ❌ Perigoso!
.FromSqlRaw($"SELECT * FROM Users WHERE Name = '{name}'")
// ✅ Seguro
.FromSqlRaw("SELECT * FROM Users WHERE Name = {0}", name)
2. Mantenha o SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. versionado
Armazene suas queries críticas como arquivos .sql no projeto
🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes.
3. Use comentários para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! documentação
/* RELATÓRIO DE VENDAS POR REGIÃO
Versão 1.2 - 2024-03
Autor: Equipe Analytics */
SELECT ...
Use ferramentas como o SQL Server
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. Profiler mesmo para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! queries raw
Caso Real: Relatório de Vendas Complexo🔗
Contexto: Sistema de e
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades.-commerce precisa gerar relatório com:
- Vendas
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. por categoria - Média
🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. móvel de 7 dias - Comparativo com período anterior
var sql = """
WITH SalesData AS (
SELECT
p.CategoriaId,
DATE_TRUNC('day', o.DataPedido) AS Dia,
SUM(i.Quantidade * i.Preco) AS TotalVendas
FROM Pedidos o
JOIN ItensPedido i ON o.Id = i.PedidoId
JOIN Produtos p ON i.ProdutoId = p.Id
WHERE o.DataPedido BETWEEN {0} AND {1}
GROUP BY p.CategoriaId, DATE_TRUNC('day', o.DataPedido)
)
SELECT
c.Nome AS Categoria,
AVG(sd.TotalVendas) OVER (
PARTITION BY sd.CategoriaId
ORDER BY sd.Dia
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS MediaMovel7Dias,
LAG(sd.TotalVendas, 7) OVER (PARTITION BY sd.CategoriaId ORDER BY sd.Dia) AS ComparacaoPeriodoAnterior
FROM SalesData sd
JOIN Categorias c ON sd.CategoriaId = c.Id
ORDER BY sd.Dia DESC
""";
var relatorio = await context.Database
.SqlQueryRaw<RelatorioVendasComplexoDTO>(sql, startDate, endDate)
.ToListAsync();
Para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! devs legados: Notem como o EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. moderno mantém a conexão aberta apenas durante a execução, diferente do antigo SqlConnection manual!
Dominar o Raw SQL
📝 SQL Básico: SELECT, INSERT, UPDATE e DELETE para Sobreviver!Aprenda os comandos cruciais de SQL para manipular dados em bancos relacionais com exemplos práticos, dicas e boas práticas para livrarias. no EF Core
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. é como ter um passe de emergência: você não quer usar sempre, mas quando precisa, salva seu projeto! Equilibre com as funcionalidades do ORM para manter seu código tanto eficiente quanto sustentável. 🚀
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- .NET Documentation: learn.microsoft.com/pt-br/dotnet/
- Awesome .NET: github.com/quozd/awesome-dotnet
- C# Language Specification: learn.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/
- GitHub: Microsoft/.NET: github.com/dotnet
- Microsoft Learn: C# e .NET: learn.microsoft.com/pt-br/dotnet/csharp/

há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 9 months atrás
há 9 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás