OSS Tanbou

map .NET objects to databases with LINQ queries, change tracking, updates, schema migrations, and provider plugins

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
14,797
Primary language
C#
License
MIT
Repository last updated
Oct 3, 2026
On this page

Overview

Entity Framework Core is an object-database mapper for .NET. It combines LINQ queries, change tracking, inserts and updates, and schema migrations under one programming model while supporting SQL Server, SQLite, Azure Cosmos DB, MySQL, PostgreSQL, and other databases through providers.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Express database queries through LINQ

Applications query DbContext and DbSet with LINQ while the configured provider translates operations for the target database.

Sources: [1]

Persist inserts, updates, and deletes through change tracking

EF Core tracks entity state and applies changes through SaveChanges, providing an object-oriented data-access model.

Sources: [1]

Manage schema migrations and select provider plugins

Schema migrations are part of the framework, while SQL Server, SQLite, Cosmos DB, and other databases are enabled by installing the corresponding provider package.

Sources: [1]

Best fit

Fits .NET applications centralizing data access around DbContext

It is useful when applications want queries, state tracking, updates, and migrations managed through one .NET data-access toolchain.

Sources: [1]

Before adoption

Install and validate the provider for the target database

The README directs users to provider packages for the intended database. Check provider compatibility with the EF Core version and account for database-specific behavior.

Sources: [1]

Do not treat the InMemory provider as a production-database substitute

The official InMemory package documentation discourages its common use for testing. It is useful for a minimal API exercise, but provider-specific queries, transactions, and constraints should be tested against the actual database engine.

Sources: [2]

Use stable 10.0.12 as a production baseline instead of daily builds

The repository exposes daily builds, but production environments should pin stable packages such as 10.0.12 and revalidate migrations and provider behavior during upgrades.

Sources: [1][3]

Official sources

  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)
Supplemental curator note

Choose a provider package for the target database rather than installing only the EF Core base package. Verify provider compatibility with the EF Core major version and test migrations and translated queries against the real production database engine before rollout.

Try it in 3 steps

  1. 1

    Add EF Core InMemory 10.0.12 to a console project

    Pin stable 10.0.12 and use the in-memory provider for an API-only exercise without an external database.

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

    Create a minimal DbContext and model in Program.cs

    Exercise DbContext, DbSet, insert, SaveChanges, and a LINQ Count query in one 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

    Run the sample and confirm one stored row

    Confirm output 1. This is an API exercise only; the project documentation discourages treating the InMemory provider as a production-database substitute for testing.

    dotnet run --project EfCoreDemo/EfCoreDemo.csproj
Check the official README

Growth

Growth trends · Last 30 days

14,797 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
202
Open PRs
37

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

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
Owner type
Organization
Primary language
C#
License
MIT
Repository last updated
Oct 3, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?