An open API service indexing awesome lists of open source software.

https://github.com/purkayasta/fatrepository

bare bone generic repository for efcore
https://github.com/purkayasta/fatrepository

csharp database dotnet efcore repository repository-pattern

Last synced: 3 months ago
JSON representation

bare bone generic repository for efcore

Awesome Lists containing this project

README

          

# FatRepository For EFCore
## Give it a star if you like the project. 👏 🌠 🌟

FatRepository is an Handful predefined methods that every efcore projects need.

![Nuget](https://img.shields.io/nuget/v/FatRepository)
![Nuget](https://img.shields.io/nuget/dt/FatRepository?style=plastic)
![Nuget](https://img.shields.io/github/repo-size/purkayasta/FatRepository?style=social)
![Nuget](https://img.shields.io/github/last-commit/purkayasta/FatRepository?style=flat-square)

[Nuget](https://www.nuget.org/packages/FatRepository/)

## Usage:
### Required:
> Have to configure DbContext first then register the service.

### What you get:
You will get two interface to interact with.
```
1. IFatRepository();
2. IFatDatabase();
```

```IFatRepository``` will give you some handful methods to access to operate. But If you need the full control over your dbset class then ```DbSet``` property is there to accommodate your likings.

```IFatDatabase``` will give you all the control related dbcontext class. It is nothing but a wrapper around the ```DbContext.Database``` instance. You can access SaveChanges and Transaction from there.

-------------------------------------------------------------------------
### Service Registration:

With Microsoft DI:
```c#
services.AddFatRepository();
```

With Factory:
```
var dbContext = new YourDbContext();
IFatRepository repo = FatFactoryInstaller.CreateFatRepository(dbContext);
IFatDatabase database = FatFactoryInstaller.CreateUnitOfWork(dbContext);
```

Now you can use this in your application service layer.

```c#
public class BlogService
{
private readonly IFatRepository _repository;
private readonly IFatDatabase repo, IFatDatabase database)
{
_repository = repo;
_database = database;
}

public void Add(Blog b)
{
_repository.InsertOne(b);
_database.Commit();
}

}
```

Made with C# ❤