Skip to content

Latest commit

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RepositoryKit logo

RepositoryKit

Provider-agnostic, production-ready Repository & UnitOfWork infrastructure for modern .NET.
Clean. Modular. Mockable.
GitHubNuGet


🌍 What is RepositoryKit?

RepositoryKit is a modular, unified infrastructure for .NET projects
that provides a clean and extensible Repository & UnitOfWork abstraction.

  • EF Core, MongoDB and more: Swap your database backend with zero changes to your business logic.
  • Mockable & testable: Designed from scratch for modern dependency injection and testing.
  • Plug & play: Use only what you need—each provider is its own NuGet package.

📦 Packages

PackageDescription
RepositoryKit.CoreProvider-agnostic abstractions/interfaces
RepositoryKit.EntityFrameworkEntity Framework Core implementation
RepositoryKit.MongoDbMongoDB implementation
RepositoryKit.ExtensionsUseful LINQ/collection extensions

🚀 Quickstart

1. Add a provider package:

dotnet add package RepositoryKit.EntityFramework
# or
dotnet add package RepositoryKit.MongoDb

2. Register with DI (EF example):

builder.Services.AddDbContext<AppDbContext>(...);builder.Services.AddScoped<IUnitOfWork<AppDbContext>,EfUnitOfWork<AppDbContext>>();builder.Services.AddSingleton<IUnitOfWorkManager,EfUnitOfWorkManager>();

3. Use in your app (Minimal API example):

app.MapGet("/products",async(IUnitOfWork<AppDbContext>uow)=>{varrepo=uow.GetRepository<Product>();varproducts=awaitrepo.GetAllAsync();returnResults.Ok(products);});

4. Extensions for any collection/repository:

vardistinct=products.SafeDistinct(p =>p.CategoryId).ToList();varfirstOrNone=products.AsQueryable().FirstOrNone();

🧩 Why RepositoryKit?

  • Provider-agnostic: No more vendor lock-in
  • Test-friendly: Mock everything, everywhere
  • Production patterns: Real-world repository & UoW
  • Minimal boilerplate: Focus on your business logic

📚 Full Documentation

See individual package READMEs for full details:

🤝 Contributing

PRs, issues, and suggestions are all welcome!
Feel free to fork, star, or use for your next side project.

📜 License

MIT © Ataberk Kaya

About

Provider-agnostic, modular Repository & UnitOfWork infrastructure for .NET 9+. Easily swap between Entity Framework Core, MongoDB, or custom providers. Clean architecture, fully unit-testable, LINQ-powered, and ready for production.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages