O .NET 10 está oficialmente lançado e, com ele, o EF Core 10 entrega o recurso mais transformador do ano: busca vetorial nativa e production-ready diretamente no ORM, com suporte GA no SQL Server 2025, Azure SQL Database e Azure Cosmos DB for NoSQL.
Em 11 de novembro de 2025, o Entity Framework Core 10 alcançou a disponibilidade geral com um dos avanços mais significativos de toda a sua história: o suporte nativo completo a operações de busca vetorial diretamente no ORM, sem dependência de bibliotecas externas ou provedores especializados.
Esse recurso marca o momento em que o EF Core deixa de ser apenas um mapeador objeto-relacional tradicional e passa a oferecer, de forma integrada e totalmente suportada, as primitivas necessárias para implementar Retrieval-Augmented Generation (RAG) e outras técnicas de pesquisa semântica em aplicações corporativas.
O suporte abrange dois provedores estratégicos para o ecossistema Microsoft: o SQL Server 2025 (incluindo Azure SQL Database) e o Azure Cosmos DB for NoSQL. Em ambos os casos, o recurso encontra-se em General Availability desde o lançamento do .NET 10, com documentação oficial completa, telemetria no Application Insights, suporte da Microsoft e garantia de compatibilidade com futuras atualizações.
Suporte no SQL Server 2025 e Azure SQL Database
O SQL Server 2025 introduz o tipo de dado vector(n) como cidadão de primeira classe, com limite máximo de 16.384 dimensões por vetor. O EF Core 10 oferece mapeamento direto através do tipo SqlVector, permitindo que propriedades de entidade sejam declaradas exatamente como qualquer outro tipo escalar ou complexo.
A função VECTOR_DISTANCE() está disponível nativamente no motor do SQL Server e suporta as três métricas mais utilizadas em aplicações de embeddings: similaridade cosseno, distância euclidiana (L2) e produto interno (dot product). A execução dessas operações é altamente otimizada, aproveitando instruções SIMD (AVX-512 em ambientes on-premises e AMX em instâncias Hyperscale do Azure SQL).
Embora os índices HNSW (Hierarchical Navigable Small World) ainda não estejam disponíveis no lançamento inicial do SQL Server 2025, a Microsoft já confirmou que o comando CREATE VECTOR INDEX entrará em preview público em janeiro de 2026, com disponibilidade geral prevista para o segundo trimestre do mesmo ano.
Suporte no Azure Cosmos DB for NoSQL
No Azure Cosmos DB, o suporte a vetores sai definitivamente da fase de preview e torna-se totalmente estável. Os vetores são armazenados como arrays JSON nativos dentro dos documentos, beneficiando-se da indexação DiskANN — algoritmo desenvolvido pelo Microsoft Research que oferece excelente equilíbrio entre precisão de recall e desempenho em grandes volumes de dados.
Um diferencial importante do Cosmos DB é o suporte nativo a busca híbrida por meio da função Reciprocal Rank Fusion (RRF), que permite combinar, em uma única consulta, pontuação de busca textual (full-text) com pontuação vetorial. Essa capacidade elimina a necessidade de mesclar resultados em nível de aplicação, reduzindo significativamente a complexidade do código e melhorando a latência final percebida pelo usuário.
Exemplo prático
Considere uma base de conhecimento corporativa composta por documentos técnicos, políticas internas e respostas validadas por áreas especializadas:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
public class DocumentoConhecimento { public Guid Id { get; set; } public string Titulo { get; set; } = null!; public string Conteudo { get; set; } = null!; public string Area { get; set; } = null!; // Ex: "Jurídico", "RH", "TI" public DateTime AtualizadoEm { get; set; } // Usado com SQL Server 2025 ou Azure SQL [Column(TypeName = "vector(1536)")] public SqlVector<float> Embedding { get; set; } = null!; } |
A consulta semântica para recuperar os documentos mais relevantes torna-se extremamente simples e expressiva:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var perguntaUsuario = "Como deve ser feito o cálculo de horas extras no regime de escala 12x36 após a Medida Provisória 1.045?"; var embeddingPergunta = await servicoEmbedding.GerarAsync(perguntaUsuario); var documentosRelevantes = await contexto.DocumentosConhecimento .Where(d => d.Area == "RH" || d.Area == "Jurídico") .OrderBy(d => EF.Functions.VectorDistanceCosine(d.Embedding, embeddingPergunta)) .Take(10) .Select(d => new { d.Id, d.Titulo, d.Conteudo, Similaridade = EF.Functions.VectorDistanceCosine(d.Embedding, embeddingPergunta) }) .ToListAsync(); |
No Azure Cosmos DB, a mesma operação pode ser enriquecida com busca híbrida:
|
1 2 3 4 5 6 7 |
var resultados = await contexto.Documentos .OrderBy(d => EF.Functions.Rrf( EF.Functions.FullTextScore(d.Conteudo, perguntaUsuario), EF.Functions.VectorDistanceCosine(d.Embedding, embeddingPergunta) )) .Take(12) .ToListAsync(); |
Vantagens arquiteturais de manter vetores e dados no mesmo lugar
A decisão de integrar busca vetorial diretamente nos provedores existentes traz benefícios profundos em múltiplas dimensões:
- Consistência transacional absoluta: o vetor e o documento fonte estão na mesma unidade de armazenamento, eliminando completamente problemas de sincronização assíncrona ou eventual consistency.
- Simplicidade operacional: não há mais necessidade de pipelines paralelos de ingestão, workers dedicados para atualização de embeddings ou mecanismos de reconciliação entre bases distintas.
- Segurança e conformidade: os embeddings nunca deixam o perímetro do banco de dados corporativo, facilitando o atendimento a requisitos de LGPD, GDPR e normas setoriais brasileiras.
- Redução do Total Cost of Ownership: elimina a camada de custo associada a serviços especializados de banco vetorial, aproveitando a infraestrutura já provisionada e licenciada.
- Manutenibilidade: atualizações no conteúdo do documento podem recalcular o embedding dentro da mesma transação ou trigger, mantendo a base sempre consistente.
Conclusão
O suporte nativo à busca vetorial no Entity Framework Core 10 representa uma evolução profunda na forma como aplicações .NET corporativas podem incorporar inteligência artificial generativa. Pela primeira vez, é possível construir pipelines completos de RAG com consistência forte, complexidade mínima e desempenho adequado à grande maioria dos cenários reais, utilizando exclusivamente componentes já presentes na stack tecnológica da organização.
A integração direta com SQL Server 2025 e Azure Cosmos DB transforma o que antes exigia múltiplas camadas especializadas em uma funcionalidade natural do ORM, alinhando-se perfeitamente aos princípios de simplicidade, robustez e manutenibilidade que sempre caracterizaram as melhores práticas do ecossistema .NET.
FAQ: Perguntas Frequentes
1. O suporte está realmente em General Availability desde 11/11/2025?
Sim. Disponível em GA para SQL Server 2025, Azure SQL Database e Azure Cosmos DB for NoSQL.
2. Qual o limite máximo de dimensões suportado?
16.384 no SQL Server 2025; 4.096 no Azure Cosmos DB for NoSQL no lançamento atual.
3. É necessário criar índices vetoriais manualmente no SQL Server?
Sim, no lançamento inicial. O comando CREATE VECTOR INDEX estará disponível em preview público a partir de janeiro de 2026.
4. Há suporte a tipos quantizados (int8, float16)?
Não na versão 10.0 GA. O suporte está planejado para o EF Core 10.1.
5. O recurso funciona com embeddings gerados por modelos locais ou de outros provedores?
Sim. Qualquer coleção de valores float (array, List, ReadOnlySpan) é aceita diretamente como SqlVector.