RepoPgNet 1.1.0
See the version list below for details.
dotnet add package RepoPgNet --version 1.1.0
NuGet\Install-Package RepoPgNet -Version 1.1.0
<PackageReference Include="RepoPgNet" Version="1.1.0" />
paket add RepoPgNet --version 1.1.0
#r "nuget: RepoPgNet, 1.1.0"
// Install RepoPgNet as a Cake Addin #addin nuget:?package=RepoPgNet&version=1.1.0 // Install RepoPgNet as a Cake Tool #tool nuget:?package=RepoPgNet&version=1.1.0
📦 PGNet a PostgreSQL Repository for .NET
Um repositório genérico com implementações completas para PostgreSQL usando .NET
✨ Descrição
Este pacote oferece uma implementação completa de um repositório genérico para aplicações .NET com PostgreSQL, facilitando a criação, leitura, atualização e remoção (CRUD) de entidades no banco de dados.
Com ele, você pode simplificar o acesso a dados usando boas práticas, abstraindo a camada de repositório e deixando sua aplicação mais limpa e desacoplada.
🚀 Instalação Você pode instalar o pacote através do NuGet Package Manager ou da CLI:
Usando o NuGet Package Manager: <pre> Install-Package SeuPackageName </pre>
🛠️ Configuração
{
"ConnectionStrings": {
"PostgresConnection": "Host=localhost;Database=seuDB;Username=postgres;Password=suasenha;"
}
}
Configurando DbContext:
using Microsoft.EntityFrameworkCore;
namespace YourNamespace
{
public class ProductPgDbContext : DbContext
{
public ProductPgDbContext(DbContextOptions<ProductPgDbContext> options) : base(options) { }
// Adicione os DbSets de suas entidades
public DbSet<Product> Products { get; set; }
}
}
No seu Program.cs:
using Microsoft.EntityFrameworkCore;
using YourNamespace;
var builder = WebApplication.CreateBuilder(args);
// Registrando o repositório e Configura o DbContext
builder.Services.AddRepoPgNet<ProductPgDbContext>(builder.Configuration);
var app = builder.Build();
🎯 Uso
Criando uma Entidade
Defina uma entidade no seu projeto:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Usando o Repositório
Exemplo de uso do repositório genérico no Controller:
public class ProductsController : ControllerBase
{
private readonly IPgRepository<Product> _repository;
public ProductsController(IRepository<Product> repository)
{
_repository = repository;
}
[HttpPost]
public async Task<IActionResult> Create(Product product)
{
await _repository.AddAsync(product);
return Ok("Produto criado com sucesso!");
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
var products = await _repository.GetAllAsync();
return Ok(products);
}
}
⚙️ Funcionalidades
CRUD Completo:
- AddAsync(entity) - Adiciona uma nova entidade.
- GetByIdAsync(id) - Retorna uma entidade pelo ID.
- GetAllAsync() - Retorna todas as entidades.
- UpdateAsync(entity) - Atualiza uma entidade existente.
- DeleteAsync(id) - Remove uma entidade pelo ID.
- Performance:
Uso eficiente de conexões com o banco de dados PostgreSQL. Genérico:
Pode ser usado com qualquer classe de entidade que tenha um identificador.
🧩 Requisitos
- .NET 6 ou superior
- PostgreSQL 12+
🗂️ Estrutura do Pacote
Interfaces:
IPgRepository<T>: Interface do repositório genérico.
Implementações:
PgRepository<T>: Implementação concreta para PostgreSQL.
🤝 Contribuição Contribuições são bem-vindas!
- Faça um fork do repositório.
- Crie uma branch para sua feature (git checkout -b feature/NovaFeature).
- Commit suas mudanças (git commit -m "Adicionei uma nova feature X").
- Faça um push para a branch (git push origin feature/NovaFeature).
- Abra um Pull Request.
⭐ Dê uma estrela!
Se você achou este pacote útil, não se esqueça de dar uma ⭐ no GitHub!
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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 8.0.8)
- Npgsql.EntityFrameworkCore.PostgreSQL.Design (>= 1.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Refatorar IPgRepository e atualizar as configurações do projeto
Renomeado GetAll para GetAllEntities em IPgRepository.
Substituição de métodos sync por equivalentes assíncronos em IPgRepository.
Atualização de PackageId e Title em RepoPgNet.csproj para RepoPgNet.
Adicionada propriedade Version (1.1.0) para RepoPgNet.csproj.
Movido conteúdo de Repository.cs para novo arquivo PgRepository.cs.
Atualização de classe PgRepository para usar métodos assíncronos.
Adicionado método de extensão AddRepoPgNet para registro DI.
Configuração de AddRepoPgNet para usar string de conexão PostgreSQL.