Skip to content

EmptyBucket/Repositories

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repositories

Library for working with repositories and unit of work

Nuget:

Usage

var postgreSettings = new NpgsqlConnectionStringBuilder
    { Host = "localhost", Database = "postgres", Username = "postgres", Password = "postgres" }.ConnectionString;
var serviceCollection = new ServiceCollection()
    .AddScopedDbContext<FooDbContext>((_, b) => b.UseNpgsql(postgreSettings))
    .AddUnitOfWork()
    .AddEntity<FirstEntity, FooDbContext>()
    .AddEntity<SecondEntity, FooDbContext>();
var serviceProvider = serviceCollection.BuildServiceProvider().CreateScope().ServiceProvider;

{
    var firstRepository = serviceProvider.GetRequiredService<IRepository<FirstEntity>>();
    await firstRepository.AddAsync(new FirstEntity("first"));
}

{
    var firstRepositoryFactory = serviceProvider.GetRequiredService<IRepositoryFactory<FirstEntity>>();
    var secondRepositoryFactory = serviceProvider.GetRequiredService<IRepositoryFactory<SecondEntity>>();
    var dbContextFactory = serviceProvider.GetRequiredService<IDbContextFactory<FooDbContext>>();
    var unitOfWork = serviceProvider.GetRequiredService<IUnitOfWork>();

    await unitOfWork.RunAsync(async () =>
    {
        var firstRepository = firstRepositoryFactory.Create();
        var secondRepository = secondRepositoryFactory.Create();

        await firstRepository.AddAsync(new FirstEntity("second"));
        await secondRepository.AddAsync(new SecondEntity("third"));

        // do something in db context
        var fooDbContext = dbContextFactory.CreateDbContext();
    });
}

About

Library for working with repositories and unit of work

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages