OSS探訪

LINQ query・change tracking・update・schema migrationをprovider API経由で扱う.NET object-database mapper

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
14,797
主要言語
C#
ライセンス
MIT
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

Entity Framework Coreは.NET向けobject-database mapperです。LINQ query、change tracking、insert/update/delete、schema migrationを一つのprogramming modelへまとめ、SQL Server、SQLite、Azure Cosmos DB、MySQL、PostgreSQL等をprovider plugin経由で扱います。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

LINQからdatabase queryを記述する

DbContextとDbSetを通してLINQ queryを記述し、providerがtarget database向けのqueryへ変換します。

出典:[1]

change trackingからinsert・update・deleteを反映する

entityの変更を追跡し、SaveChangesを通してdatabaseへ更新を反映するobject-orientedなdata access modelを提供します。

出典:[1]

schema migrationとprovider plugin APIを使う

schema migrationを備え、SQL Server、SQLite、Cosmos DB等は対応provider packageを選択して利用します。provider APIによりthird-party databaseも統合できます。

出典:[1]

向いている用途

.NET applicationのdata accessをDbContext中心に統一したい場合に向く

domain objectとdatabase操作を一つのmodelへ寄せ、query・tracking・migrationを同じtoolchainで管理したいapplicationに適します。

出典:[1]

導入前の確認

target databaseに対応するprovider packageを選ぶ

READMEはbase packageだけでなくtarget databaseに対応するproviderのinstallを案内しています。providerの対応EF Core versionとdatabase機能差を確認します。

出典:[1]

InMemory providerをproduction databaseの代替testとして過信しない

公式package documentationはInMemory providerをtestingへ使う慣行をdiscourageしています。Quick StartではAPI確認だけに使い、provider固有のquery・transaction・constraintは実DBで検証します。

出典:[2]

daily buildではなくstable 10.0.12をproduction baselineにする

repositoryはdaily buildも提供しますが、productionでは2026年9月8日公開の10.0.12等stable packageを固定し、migrationとprovider挙動をupgradeごとに確認します。

出典:[1][3]

参考にした公式資料

  1. [1]EF Core 10.0.12 README(2026-10-04)
  2. [2]EF Core 10.0.12 InMemory package guidance(2026-10-04)
  3. [3]EF Core 10.0.12 release(2026-10-04)
  4. [4]EF Core MIT license(2026-10-04)
編集部からの補足

EF Core本体だけでなく対象databaseに対応するprovider packageを選ぶ必要があります。providerは対応するEF Core major versionを確認し、migrationやquery変換の差分をproduction投入前に実DBで検証してください。

3ステップで試す

  1. 1

    console projectへEF Core InMemory 10.0.12を追加する

    外部database不要でAPIを確認するため、stable 10.0.12のInMemory providerをversion固定で追加します。

    dotnet new console -n EfCoreDemo -f net10.0 && dotnet add EfCoreDemo/EfCoreDemo.csproj package Microsoft.EntityFrameworkCore.InMemory --version 10.0.12
  2. 2

    DbContextと最小modelをProgram.csへ作成する

    DbContext、DbSet、insert、SaveChanges、LINQ Countを一つのfileで確認します。

    printf 'using Microsoft.EntityFrameworkCore;\nusing var db = new DemoDb(); db.Items.Add(new Item { Name = "OSS Tanbou" }); db.SaveChanges(); Console.WriteLine(db.Items.Count());\npublic class DemoDb : DbContext { public DbSet<Item> Items => Set<Item>(); protected override void OnConfiguring(DbContextOptionsBuilder o) => o.UseInMemoryDatabase("demo"); }\npublic class Item { public int Id { get; set; } public string Name { get; set; } = ""; }\n' > EfCoreDemo/Program.cs
  3. 3

    sampleを実行して1件保存されたことを確認する

    出力が1になることを確認します。InMemory providerはproduction database代替testとしては推奨されないため、この手順はAPI確認用です。

    dotnet run --project EfCoreDemo/EfCoreDemo.csproj
公式READMEで確認

成長

成長の推移 · 直近30日

14,797 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
202
Open PR
37

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • entity-framework
  • database
  • c-sharp
  • dotnet-core
  • dotnet-standard
  • dotnet-framework
  • orm
  • aspnet-product
  • hacktoberfest
Stars
14,797
Forks
3,430
Watchers
858
Open Issues
2,315
Contributors
359
所有者種別
Organization
主要言語
C#
ライセンス
MIT
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?