FatRepository is an Handful predefined methods that every efcore projects need.
Have to configure DbContext first then register the service.
You will get two interface to interact with.
1. IFatRepository<Entity,DbContext>();
2. IFatDatabase<DbContext>();
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.
With Microsoft DI:
services.AddFatRepository();
With Factory:
var dbContext = new YourDbContext();
IFatRepository repo = FatFactoryInstaller.CreateFatRepository<Blog, YourDbContext>(dbContext);
IFatDatabase database = FatFactoryInstaller.CreateUnitOfWork<YourDbContext>(dbContext);
Now you can use this in your application service layer.
public class BlogService
{
private readonly IFatRepository<Blog, YourDbContext> _repository;
private readonly IFatDatabase<YourDbContext _database;
public BlogService(IFatRepository<Blog, YourDbContext> repo, IFatDatabase<YourDbContext> database)
{
_repository = repo;
_database = database;
}
public void Add(Blog b)
{
_repository.InsertOne(b);
_database.Commit();
}
}
Made with C# ❤