mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
feat(directory): ✨ init IQueryDirectory
This commit is contained in:
parent
2a5623494b
commit
c7593e60e4
4 changed files with 67 additions and 0 deletions
|
|
@ -8,4 +8,8 @@
|
|||
<Folder Include="Persistence\Queries\Mappings\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.4" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace FilterLists.Directory.Infrastructure.Persistence.Queries
|
||||
{
|
||||
internal class DirectoryQueryDbContext : DbContext
|
||||
{
|
||||
public DbSet<FilterList> FilterLists { get; set; }
|
||||
public DbSet<Language> Languages { get; set; }
|
||||
public DbSet<License> Licenses { get; set; }
|
||||
public DbSet<Maintainer> Maintainers { get; set; }
|
||||
public DbSet<Software> Software { get; set; }
|
||||
public DbSet<Syntax> Syntaxes { get; set; }
|
||||
public DbSet<Tag> Tags { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace FilterLists.Directory.Infrastructure.Persistence.Queries
|
||||
{
|
||||
internal class DirectoryQueryFacade : IQueryDirectory, IAsyncDisposable
|
||||
{
|
||||
private readonly DirectoryQueryDbContext _db;
|
||||
|
||||
public DirectoryQueryFacade()
|
||||
{
|
||||
_db = new DirectoryQueryDbContext();
|
||||
}
|
||||
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
await _db.DisposeAsync();
|
||||
}
|
||||
|
||||
public IQueryable<FilterList> FilterLists => _db.FilterLists.AsNoTracking();
|
||||
public IQueryable<Language> Languages => _db.Languages.AsNoTracking();
|
||||
public IQueryable<License> Licenses => _db.Licenses.AsNoTracking();
|
||||
public IQueryable<Maintainer> Maintainers => _db.Maintainers.AsNoTracking();
|
||||
public IQueryable<Software> Software => _db.Software.AsNoTracking();
|
||||
public IQueryable<Syntax> Syntaxes => _db.Syntaxes.AsNoTracking();
|
||||
public IQueryable<Tag> Tags => _db.Tags.AsNoTracking();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
using System.Linq;
|
||||
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
|
||||
|
||||
namespace FilterLists.Directory.Infrastructure.Persistence.Queries
|
||||
{
|
||||
public interface IQueryDirectory
|
||||
{
|
||||
IQueryable<FilterList> FilterLists { get; }
|
||||
IQueryable<Language> Languages { get; }
|
||||
IQueryable<License> Licenses { get; }
|
||||
IQueryable<Maintainer> Maintainers { get; }
|
||||
IQueryable<Software> Software { get; }
|
||||
IQueryable<Syntax> Syntaxes { get; }
|
||||
IQueryable<Tag> Tags { get; }
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue