MongoRepoNet 1.1.2
See the version list below for details.
dotnet add package MongoRepoNet --version 1.1.2
NuGet\Install-Package MongoRepoNet -Version 1.1.2
<PackageReference Include="MongoRepoNet" Version="1.1.2" />
paket add MongoRepoNet --version 1.1.2
#r "nuget: MongoRepoNet, 1.1.2"
// Install MongoRepoNet as a Cake Addin #addin nuget:?package=MongoRepoNet&version=1.1.2 // Install MongoRepoNet as a Cake Tool #tool nuget:?package=MongoRepoNet&version=1.1.2
📦 RepoMongoNet a MongoDb Repository for .NET
Um repositório genérico com implementações completas para MongoDb usando .NET
✨ Descrição
Este pacote oferece uma implementação completa de um repositório genérico para aplicações .NET com MongoDb, 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 RepoMongoNet </pre>
🛠️ Configuração
Crie uma classe MongoDbSettings.cs:
appsetings.json:
```json
{
"MongoDbSettings": {
"ConnectionString": "mongodb://userdb:password@localhost:27017/?authMechanism=SCRAM-SHA-256"
"DatabaseName": "MyStore"
}
}
No seu Program.cs:
using Microsoft.EntityFrameworkCore;
using YourNamespace;
var builder = WebApplication.CreateBuilder(args);
// Configurar opções do MongoDB
builder.Services.AddMongoRepoNet(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 IMongoRepository<Products> _repository;
public ProductsController(IMongoRepository<Product> repository)
{
_repository = repository;
}
[HttpPost]
public async Task<IActionResult> Create(Product product)
{
await _repository.InsertAsync(product);
return Ok("Produto criado com sucesso!");
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
var products = await _repository.GetAllAsync();
return Ok(products);
}
}
⚙️ Funcionalidades
CRUD Completo:
- InsertAsync(TEntity obj) - Adiciona uma nova entidade.
- GetById(string field, Guid id) - Retorna uma entidade pelo ID.
- GetAllAsync(int page = 1, int pageSize = 10, string sort = "asc") - Retorna todas as entidades om paginação.
- UpdateAsync(string field, TEntity obj, string collectionName) - Atualiza uma entidade existente.
- Delete(string field, Guid id, string collectionName) - 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
- MongoDB.Driver 2.29.0+
🗂️ Estrutura do Pacote
Interfaces:
IMongoRepository<T>: Interface do repositório genérico.
Implementações:
MongoRepository<T>: Implementação concreta.
🤝 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
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.Options (>= 9.0.0)
- MongoDB.Bson (>= 2.29.0)
- MongoDB.Driver (>= 2.29.0)
- System.Configuration.ConfigurationManager (>= 9.0.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 repositório MongoDB e adicionar suporte DI
Atualizado `IMongoRepository` com documentos XML e nomenclatura assíncrona.
Modificado `MongoDbContext` para usar `IOptions<MongoDbSettingsOptions>`.
Renomeado `MongoDbSettings` para `MongoDbSettingsOptions` com padrões.
Atualizado `MongoRepoNet.csproj` com novos `PackageId`, `Title` e dependências.
Refatorado `MongoRepository` para alinhar com as mudanças de interface.
Adicionado `ServiceCollectionExtension` para registro DI de serviços MongoDB.