Web Studio、インデックス作成、全文検索・ベクトル検索、シャーディングを備えた、C#製のACID対応NoSQLドキュメントデータベース。
dotnetcore/FreeSql
.NET向けORMのFreeSqlは、AOT、CodeFirstマイグレーションに対応し、MySQL、PostgreSQL、SQL Server、Oracle、SQLiteや複数の中国国産データベースをサポートします。
- スター
- 4,409
- フォーク
- 910
- 未解決の Issue
- 179
- 最終コミット
- 7 日前
これは何?
FreeSqlは、.NET Core 2.1以降、.NET Framework 4.0以降、Xamarin、AOT環境に対応した.NET向けのオブジェクトリレーショナルマッピングライブラリです。開発者はC#またはVB.NETでエンティティクラスを定義し、単一のIFreeSqlインスタンスを通じて、Fluent APIでデータの検索、挿入、更新、削除を行えます。
データアクセスだけでなく、スキーマ管理にも対応しています。CodeFirstマイグレーションによりテーブルをエンティティ定義と同期でき、DbFirstでは既存のデータベースからエンティティクラスを生成できます。ナビゲーションプロパティは、Includeや遅延読み込みを用いた一対多・多対多のリレーションをサポートし、式ベースのクエリはカスタマイズできます。
MySQL、SQL Server、PostgreSQL、Oracle、SQLite、Firebird、ClickHouse、DuckDB、TDengine、QuestDB、MS Accessのほか、DM(达梦)、KingbaseES(人大金仓)、GBase(南大通用)などの中国国産データベースを含む幅広いデータベースに対応しています。また、読み書き分離、テーブル・データベースのシャーディング、グローバルフィルター、楽観ロックと悲観ロックも利用できます。
主な機能
- 01CodeFirstによるデータベースマイグレーションと、既存データベースからのDbFirstエンティティ生成
- 02一対多・多対多のリレーション、Include、遅延読み込みに対応したナビゲーションプロパティ
- 03カスタマイズ可能な解析を備えた式ベースのクエリ
- 04読み書き分離、テーブル・データベースのシャーディング、グローバルフィルター
- 05楽観ロックと悲観ロックに対応
- 06複数の中国国産データベースを含む、多様なリレーショナル、分析、組み込みデータベースに対応
ユースケース
- 複数のデータベースを単一のデータアクセス層で扱う.NETバックエンドの構築
- DM、KingbaseES、GBaseなどの中国国産データベースを.NETから利用
- 高トラフィックな.NETアプリケーションへの読み書き分離やテーブルシャーディングの導入
- 既存のデータベーススキーマからのエンティティクラス生成
クイックスタート
- 1
SQLiteプロバイダーパッケージをインストールする
dotnet add package FreeSql.Provider.Sqlite - 2
接続文字列を使ってシングルトンのIFreeSqlインスタンスを作成する
- 3
エンティティを定義し、fsql.Select<T>()でデータをクエリする
収録されている特集
トピック
よくある質問
- FreeSql とは?
- .NET向けORMのFreeSqlは、AOT、CodeFirstマイグレーションに対応し、MySQL、PostgreSQL、SQL Server、Oracle、SQLiteや複数の中国国産データベースをサポートします。 FreeSqlは、.NET Core 2.1以降、.NET Framework 4.0以降、Xamarin、AOT環境に対応した.NET向けのオブジェクトリレーショナルマッピングライブラリです。開発者はC#またはVB.NETでエンティティクラスを定義し、単一のIFreeSqlインスタンスを通じて、Fluent APIでデータの検索、挿入、更新、削除を行えます。
- FreeSql は無料で使えますか?ライセンスは?
- FreeSql は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- FreeSql は今もメンテナンスされていますか?
- 活発にメンテナンス中。FreeSql の最終コミットは 2026年11月1日 です。
- FreeSql は何に使えますか?
- 複数のデータベースを単一のデータアクセス層で扱う.NETバックエンドの構築 DM、KingbaseES、GBaseなどの中国国産データベースを.NETから利用 高トラフィックな.NETアプリケーションへの読み書き分離やテーブルシャーディングの導入 既存のデータベーススキーマからのエンティティクラス生成
- FreeSql のインストール方法は?
- SQLiteプロバイダーパッケージをインストールする: dotnet add package FreeSql.Provider.Sqlite 接続文字列を使ってシングルトンのIFreeSqlインスタンスを作成する エンティティを定義し、fsql.Select<T>()でデータをクエリする
- FreeSql はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/dotnetcore/FreeSql
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
クライアントが必要なデータとレスポンス形式を指定できる、JSONベースのプロトコル兼ORMライブラリ。手書きのエンドポイントを増やさずに多様なAPIを提供できます。
PostgreSQL、MySQL、SQLite、MongoDBなどのデータベースに型安全にアクセスできる、Node.js向けTypeScript ORM。
Goの構造体をデータベースのテーブルに対応付け、関連付け、フック、トランザクション、マイグレーションに対応する多機能ORMです。
SQLModelは、PydanticとSQLAlchemyをベースに、PythonのクラスでSQLデータベースを扱うための、FastAPIとの併用を想定したPythonライブラリです。
Data Mapper、Unit of Work、Identity Mapパターンに基づく、SQLとMongoDBに対応したTypeScript製Node.js ORM。