ページ内ナビ
概要
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]
参考にした公式資料
- [1]EF Core 10.0.12 README(2026-10-04)
- [2]EF Core 10.0.12 InMemory package guidance(2026-10-04)
- [3]EF Core 10.0.12 release(2026-10-04)
- [4]EF Core MIT license(2026-10-04)
編集部からの補足
EF Core本体だけでなく対象databaseに対応するprovider packageを選ぶ必要があります。providerは対応するEF Core major versionを確認し、migrationやquery変換の差分をproduction投入前に実DBで検証してください。
3ステップで試す
- 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
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
sampleを実行して1件保存されたことを確認する
出力が
1になることを確認します。InMemory providerはproduction database代替testとしては推奨されないため、この手順はAPI確認用です。dotnet run --project EfCoreDemo/EfCoreDemo.csproj
成長
成長の推移 · 直近30日
14,797 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 202
- Open PR
- 37
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Avalonia31,619 Stars
共通タグ 1件 · 共通カテゴリ 2件 · 同じ言語
C#とXAMLでWindows・macOS・Linux・mobile・WebAssemblyへ展開できるcross-platform UIを構築する
C# - .NET Community Toolkit3,762 Stars
共通タグ 1件 · 共通カテゴリ 2件 · 同じ言語
MVVM・argument validation・high-performance memory helper等をUI framework非依存のNuGet packageとして.NET applicationへ追加する
C# - Flutter179,266 Stars
共通タグ 1件 · 共通カテゴリ 2件
Dartの一つのcodebaseからmobile・web・desktop UIを構築するcross-platform SDK
Dart - React Native126,786 Stars
共通タグ 1件 · 共通カテゴリ 2件
React componentをnative UIへ描画するmobile framework。0.87.1とframework-first導線を整理
C++ - Electron123,357 Stars
共通タグ 1件 · 共通カテゴリ 2件
ChromiumとNode.jsを同梱し、HTML・CSS・JavaScriptから3 OS向けdesktop appを構築するruntime
C++ - Tauri111,560 Stars
共通タグ 1件 · 共通カテゴリ 2件
web frontendとRust native layerをsystem WebView上のdesktop/mobile appへまとめる
Rust
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。