Repolode
dotnetcore

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. 1

    SQLiteプロバイダーパッケージをインストールする

    dotnet add package FreeSql.Provider.Sqlite
  2. 2

    接続文字列を使ってシングルトンのIFreeSqlインスタンスを作成する

  3. 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 の数値は毎日更新されます。

関連プロジェクト