RepoPgNet 1.1.2
dotnet add package RepoPgNet --version 1.1.2
NuGet\Install-Package RepoPgNet -Version 1.1.2
<PackageReference Include="RepoPgNet" Version="1.1.2" />
paket add RepoPgNet --version 1.1.2
#r "nuget: RepoPgNet, 1.1.2"
// Install RepoPgNet as a Cake Addin #addin nuget:?package=RepoPgNet&version=1.1.2 // Install RepoPgNet as a Cake Tool #tool nuget:?package=RepoPgNet&version=1.1.2
📦 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 RepoPgNet </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.