웹 Studio, 인덱싱, 전문·벡터 검색, 샤딩을 기본 제공하는 C# 기반 ACID NoSQL 문서 데이터베이스입니다.
dotnetcore/FreeSql
FreeSql은 AOT와 코드 우선 마이그레이션을 지원하며, MySQL, PostgreSQL, SQL Server, Oracle, SQLite 및 여러 중국 국내 데이터베이스를 지원하는 .NET ORM입니다.
- 스타
- 4,409
- 포크
- 910
- 열린 이슈
- 179
- 마지막 커밋
- 6일 전
어떤 프로젝트인가요?
FreeSql은 .NET용 객체 관계 매핑 라이브러리로, .NET Core 2.1 이상, .NET Framework 4.0 이상, Xamarin 및 AOT 환경을 대상으로 합니다. 개발자는 C# 또는 VB.NET으로 엔터티 클래스를 정의하고, 하나의 IFreeSql 인스턴스를 통해 fluent API로 데이터를 조회, 삽입, 수정, 삭제할 수 있습니다.
데이터 접근뿐 아니라 스키마 작업도 지원합니다. 코드 우선 마이그레이션으로 엔터티 정의에 맞춰 테이블을 동기화할 수 있으며, DbFirst를 사용하면 기존 데이터베이스에서 엔터티 클래스를 생성할 수 있습니다. 탐색 속성은 include 및 지연 로딩과 함께 일대다·다대다 관계를 지원하고, 식 기반 쿼리는 원하는 방식으로 사용자 지정할 수 있습니다.
MySQL, SQL Server, PostgreSQL, Oracle, SQLite, Firebird, ClickHouse, DuckDB, TDengine, QuestDB, MS Access를 비롯해 DM(达梦), KingbaseES(人大金仓), GBase(南大通用) 같은 중국 국내 데이터베이스 등 폭넓은 데이터베이스를 지원합니다. 읽기/쓰기 분리, 테이블 및 데이터베이스 샤딩, 전역 필터, 낙관적·비관적 잠금 기능도 제공합니다.
핵심 기능
- 01코드 우선 데이터 마이그레이션 및 기존 데이터베이스에서 DbFirst로 엔터티 생성
- 02일대다·다대다 관계를 지원하는 탐색 속성, include 및 지연 로딩
- 03사용자 지정 분석을 지원하는 식 기반 쿼리
- 04읽기/쓰기 분리, 테이블 및 데이터베이스 샤딩, 전역 필터
- 05낙관적·비관적 잠금 지원
- 06여러 중국 국내 데이터베이스를 포함한 다양한 관계형·분석용·임베디드 데이터베이스 지원
활용 사례
- 하나의 데이터 접근 계층으로 여러 데이터베이스를 대상으로 하는 .NET 백엔드 구축
- .NET에서 DM, KingbaseES, GBase 같은 중국 국내 데이터베이스 사용
- 대용량 .NET 애플리케이션에 읽기/쓰기 분리 또는 테이블 샤딩 도입
- 기존 데이터베이스 스키마에서 엔터티 클래스 생성
빠른 시작
- 1
SQLite 공급자 패키지를 설치합니다
dotnet add package FreeSql.Provider.Sqlite - 2
연결 문자열을 사용해 싱글턴 IFreeSql 인스턴스를 생성합니다
- 3
엔터티를 정의하고 fsql.Select<T>()로 데이터를 조회합니다
포함된 컬렉션
토픽
자주 묻는 질문
- FreeSql은(는) 무엇인가요?
- FreeSql은 AOT와 코드 우선 마이그레이션을 지원하며, MySQL, PostgreSQL, SQL Server, Oracle, SQLite 및 여러 중국 국내 데이터베이스를 지원하는 .NET ORM입니다. FreeSql은 .NET용 객체 관계 매핑 라이브러리로, .NET Core 2.1 이상, .NET Framework 4.0 이상, Xamarin 및 AOT 환경을 대상으로 합니다. 개발자는 C# 또는 VB.NET으로 엔터티 클래스를 정의하고, 하나의 IFreeSql 인스턴스를 통해 fluent API로 데이터를 조회, 삽입, 수정, 삭제할 수 있습니다.
- FreeSql은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- FreeSql은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- FreeSql은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. FreeSql의 마지막 커밋은 2026년 11월 1일입니다.
- FreeSql은(는) 어디에 사용할 수 있나요?
- 하나의 데이터 접근 계층으로 여러 데이터베이스를 대상으로 하는 .NET 백엔드 구축 .NET에서 DM, KingbaseES, GBase 같은 중국 국내 데이터베이스 사용 대용량 .NET 애플리케이션에 읽기/쓰기 분리 또는 테이블 샤딩 도입 기존 데이터베이스 스키마에서 엔터티 클래스 생성
- FreeSql는 어떻게 설치하나요?
- SQLite 공급자 패키지를 설치합니다: dotnet add package FreeSql.Provider.Sqlite 연결 문자열을 사용해 싱글턴 IFreeSql 인스턴스를 생성합니다 엔터티를 정의하고 fsql.Select<T>()로 데이터를 조회합니다
- FreeSql은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dotnetcore/FreeSql
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
PostgreSQL, MySQL, SQLite, MongoDB 등 다양한 데이터베이스에 타입 안전한 접근을 제공하는 Node.js용 TypeScript ORM입니다.
Go 구조체를 데이터베이스 테이블에 매핑하고 연관 관계, 훅, 트랜잭션, 마이그레이션을 지원하는 기능이 풍부한 ORM입니다.
SQLModel은 Pydantic과 SQLAlchemy를 기반으로 하며 FastAPI와 함께 사용하도록 설계된, Python 클래스로 SQL 데이터베이스를 다루는 라이브러리입니다.
Data Mapper, Unit of Work, Identity Map 패턴을 기반으로 SQL과 MongoDB를 지원하는 Node.js용 TypeScript ORM입니다.