Banco de dados NoSQL de documentos com ACID, escrito em C#, com Studio web integrado, indexação, busca full-text e vetorial, e sharding.
dotnetcore/FreeSql
FreeSql é um ORM para .NET com suporte a AOT, migrações code-first e diversos bancos de dados, incluindo MySQL, PostgreSQL, SQL Server, Oracle, SQLite e vários bancos chineses.
- Estrelas
- 4,409
- Forks
- 910
- Issues abertas
- 179
- Último commit
- há 7 dias
O que é?
FreeSql é uma biblioteca de mapeamento objeto-relacional para .NET, compatível com .NET Core 2.1+, .NET Framework 4.0+, Xamarin e cenários com AOT. Os desenvolvedores definem classes de entidade em C# ou VB.NET e usam uma API fluente para consultar, inserir, atualizar e excluir dados por meio de uma única instância de IFreeSql.
A biblioteca abrange tanto o trabalho com esquemas quanto o acesso a dados. As migrações code-first mantêm as tabelas sincronizadas com as definições das entidades, e o DbFirst pode gerar classes de entidade a partir de um banco de dados existente. Propriedades de navegação dão suporte a relacionamentos um-para-muitos e muitos-para-muitos, com include e lazy loading, e as consultas baseadas em expressões podem ser personalizadas.
A biblioteca é compatível com diversos bancos de dados, incluindo MySQL, SQL Server, PostgreSQL, Oracle, SQLite, Firebird, ClickHouse, DuckDB, TDengine, QuestDB e MS Access, além de bancos chineses como DM (达梦), KingbaseES (人大金仓) e GBase (南大通用). Também oferece separação de leitura e escrita, sharding de tabelas e bancos de dados, filtros globais e bloqueios otimistas e pessimistas.
Recursos principais
- 01Migração de dados code-first e geração de entidades com DbFirst a partir de bancos de dados existentes
- 02Propriedades de navegação com relacionamentos um-para-muitos e muitos-para-muitos, include e lazy loading
- 03Consultas baseadas em expressões com análise personalizável
- 04Separação de leitura e escrita, sharding de tabelas e bancos de dados e filtros globais
- 05Suporte a bloqueios otimistas e pessimistas
- 06Compatibilidade com diversos bancos de dados relacionais, analíticos e embarcados, incluindo vários bancos chineses
Casos de uso
- Criar backends .NET que precisam oferecer suporte a vários bancos de dados usando uma única camada de acesso a dados
- Acessar bancos de dados chineses como DM, KingbaseES ou GBase a partir do .NET
- Adicionar divisão de leitura e escrita ou sharding de tabelas a uma aplicação .NET de alto volume
- Gerar classes de entidade a partir do esquema de um banco de dados existente
Início rápido
- 1
Instale o pacote do provedor SQLite
dotnet add package FreeSql.Provider.Sqlite - 2
Crie a instância singleton de IFreeSql com uma string de conexão
- 3
Defina entidades e consulte dados com fsql.Select<T>()
Em coleções
Tópicos
Perguntas frequentes
- O que é FreeSql?
- FreeSql é um ORM para .NET com suporte a AOT, migrações code-first e diversos bancos de dados, incluindo MySQL, PostgreSQL, SQL Server, Oracle, SQLite e vários bancos chineses. FreeSql é uma biblioteca de mapeamento objeto-relacional para .NET, compatível com .NET Core 2.1+, .NET Framework 4.0+, Xamarin e cenários com AOT. Os desenvolvedores definem classes de entidade em C# ou VB.NET e usam uma API fluente para consultar, inserir, atualizar e excluir dados por meio de uma única instância de IFreeSql.
- FreeSql é gratuito? Qual é a licença?
- FreeSql é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- FreeSql ainda é mantido?
- Manutenção ativa. O último commit de FreeSql foi em 1 de nov. de 2026.
- Para que posso usar FreeSql?
- Criar backends .NET que precisam oferecer suporte a vários bancos de dados usando uma única camada de acesso a dados Acessar bancos de dados chineses como DM, KingbaseES ou GBase a partir do .NET Adicionar divisão de leitura e escrita ou sharding de tabelas a uma aplicação .NET de alto volume Gerar classes de entidade a partir do esquema de um banco de dados existente
- Como instalar FreeSql?
- Instale o pacote do provedor SQLite: dotnet add package FreeSql.Provider.Sqlite Crie a instância singleton de IFreeSql com uma string de conexão Defina entidades e consulte dados com fsql.Select<T>()
- Onde consigo FreeSql?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dotnetcore/FreeSql
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Protocolo baseado em JSON e biblioteca ORM que permitem aos clientes definir os dados e o formato da resposta, para que o backend ofereça várias APIs sem endpoints escritos manualmente.
ORM para Node.js e TypeScript que oferece acesso type-safe a bancos de dados como PostgreSQL, MySQL, SQLite e MongoDB.
ORM completo para Go que mapeia structs para tabelas de banco de dados e oferece suporte a associações, hooks, transações e migrações.
SQLModel é uma biblioteca Python para trabalhar com bancos de dados SQL usando classes Python, construída sobre Pydantic e SQLAlchemy e projetada para ser usada com FastAPI.
ORM em TypeScript para Node.js baseado nos padrões Data Mapper, Unit of Work e Identity Map, com suporte a SQL e MongoDB.