CleanCodeJN.Repository.EntityFramework
1.0.0
See the version list below for details.
dotnet add package CleanCodeJN.Repository.EntityFramework --version 1.0.0
NuGet\Install-Package CleanCodeJN.Repository.EntityFramework -Version 1.0.0
<PackageReference Include="CleanCodeJN.Repository.EntityFramework" Version="1.0.0" />
paket add CleanCodeJN.Repository.EntityFramework --version 1.0.0
#r "nuget: CleanCodeJN.Repository.EntityFramework, 1.0.0"
// Install CleanCodeJN.Repository.EntityFramework as a Cake Addin #addin nuget:?package=CleanCodeJN.Repository.EntityFramework&version=1.0.0 // Install CleanCodeJN.Repository.EntityFramework as a Cake Tool #tool nuget:?package=CleanCodeJN.Repository.EntityFramework&version=1.0.0
Generic Repository Implementation
Repository Abstraction for Entity Framework
This generic Repository implementation for Entity Framework abstracts completely all EF-References from your business layer in a domain driven design manner.
Features
- Ready to use in seconds
- Abstracts all EF specific Code out of your business layer
- Easy to mock and test
- On latest .NET 8.0
How to use
- Add IEntity<T> interfaces to your domain classes
- Add IDataContext Interface to your DBContext class
- Use Extension RegisterRepositories() in your startup class or program.cs
- Inject IRepository<T> in your business layer
- Just use It
Step by step explanation
Add IEntity<T> interfaces to your domain classes:
public class Comment : IEntity<int>
{
public int Id { get; set; }
}
Add IDataContext Interface to your DBContext class:
public partial class YourContext : DbContext, IDataContext
{
}
Use Extension RegisterRepositories() in your startup class or program.cs:
using CleanCodeJN.Repository.EntityFramework.Extensions;
using Microsoft.Extensions.Hosting;
var builder = Host.CreateApplicationBuilder(args);
// Register Repositories
builder.Services.RegisterRepositories();
await builder.Build().RunAsync();
Inject IRepository<T> in your business layer:
public class MyService(IIntRepository<Customer> repository)
{
}
Just use it:
List<customer> customerWhoHavePayed = repository.Query(x => x.Invoices).Where(x => x.Invoice.IsPayed).ToList()
License
MIT
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- CleanCodeJN.Repository.Abstractions (>= 1.0.0)
- Microsoft.EntityFrameworkCore (>= 8.0.4)
- Microsoft.EntityFrameworkCore.SqlServer (>= 8.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CleanCodeJN.Repository.EntityFramework:
Package | Downloads |
---|---|
CleanCodeJN.GenericApis
This CleanCodeJN package streamlines the development of web APIs in .NET applications by providing a robust framework for CRUD operations and facilitating the implementation of complex business logic in a clean and maintainable manner. |
GitHub repositories
This package is not used by any popular GitHub repositories.
First Version of fully implemented and production proved generic Repository for EF 8.x.