Reo.Core.Database 10.0.379

There is a newer version of this package available.
See the version list below for details.
dotnet add package Reo.Core.Database --version 10.0.379
                    
NuGet\Install-Package Reo.Core.Database -Version 10.0.379
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.

                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.

                    
Directory.Packages.props

                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Reo.Core.Database --version 10.0.379
                    
#r "nuget: Reo.Core.Database, 10.0.379"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Reo.Core.Database@10.0.379
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Reo.Core.Database&version=10.0.379
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Database&version=10.0.379
                    
Install as a Cake Tool

Reo.Core.Database

Описание пакета

Reo.Core.Database — это абстрактный слой для работы с базами данных, предназначенный для упрощения и унификации доступа к данным в приложениях на C#. Пакет предоставляет общий интерфейс для выполнения операций CRUD, поддерживает инструменты для аудита изменений, а также включает реализации для работы с MongoDB и PostgreSQL. Он решает проблему дублирования кода при работе с разными СУБД и обеспечивает централизованное управление конфигурацией и состоянием баз данных.

Основные компоненты

1. IDataProvider

Интерфейс для выполнения операций с базой данных (CRUD, фильтрация, агрегация). Предоставляет методы для работы с сущностями, включая вставку, обновление, удаление и выборку данных.

2. IDataProviderFactory

Фабрика для создания экземпляров IDataProvider. Используется для интеграции с контейнером зависимостей (DI) в ASP.NET Core и других фреймворках.

3. MongoDataProvider

Реализация IDataProvider для работы с MongoDB. Поддерживает асинхронные операции, фильтрацию и инклюзию связанных данных (через Include).

4. PostgresClusterHealthCheck

Реализация проверки состояния кластера PostgreSQL. Использует Npgsql для проверки доступности узлов кластера и обеспечивает высокую отказоустойчивость.

5. UpdateDateInterceptor

Инструмент для автоматического обновления даты последнего изменения сущности. Может быть интегрирован в ORM-провайдеры для отслеживания изменений.

Требования

  • .NET версии: .NET Standard 2.0, .NET 6.0 и выше.
  • Зависимости:
    • Npgsql (для PostgreSQL-проверок состояния).
    • Microsoft.Extensions.DependencyInjection (для интеграции с DI-контейнером).

Установка

Используйте следующие команды для установки пакета:

Install-Package Reo.Core.Database

или

dotnet add package Reo.Core.Database

Настройка

Регистрация в ASP.NET Core

Добавьте сервисы в Startup.cs или Program.cs:

services.AddSingleton();
services.AddSingleton, MongoDataProvider>();

Конфигурационные параметры

  • Строка подключения MongoDB: Указывается в appsettings.json или через DI-контейнер.
  • Проверка состояния PostgreSQL: Настройте параметры подключения в HealthChecks через PostgresClusterHealthCheck.

Использование

Пример 1: CRUD-операции с MongoDB

public class UserService
{
    private readonly IDataProvider _dataProvider;

    public UserService(IDataProvider dataProvider)
    {
        _dataProvider = dataProvider;
    }

    public async Task GetUserByIdAsync(string id)
    {
        return await _dataProvider.Query(x => x.Id == id).FirstOrDefaultAsync();
    }

    public async Task CreateUserAsync(User user)
    {
        await _dataProvider.InsertAsync(user);
    }
}

Пример 2: Проверка состояния PostgreSQL-кластера

public class HealthCheckService
{
    private readonly IHealthCheck _healthCheck;

    public HealthCheckService(IHealthCheck healthCheck)
    {
        _healthCheck = healthCheck;
    }

    public async Task CheckClusterHealthAsync()
    {
        var result = await _healthCheck.CheckHealthAsync(new HealthCheckContext());
        if (result.Status != HealthStatus.Healthy)
        {
            // Обработка ошибки
        }
    }
}

Пример 3: Автоматическое обновление даты изменения

public class Product
{
    public string Id { get; set; }
    public string Name { get; set; }
    public DateTime LastUpdated { get; set; }
}

// В конфигурации ORM:
services.AddSingleton();

Лицензия

Данный пакет распространяется под лицензией MIT.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Reo.Core.Database:

Package Downloads
Reo.Core.IntegrationTesting

Package Description

Reo.Core.Testing.Common

Package Description

Reo.Core.TUnitIntegrationTesting

Инфраструктура интеграционного тестирования на базе TUnit с общими Docker-контейнерами (Testcontainers) для всех тестов сборки

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.387 0 10/7/2026
10.0.386 0 10/7/2026
10.0.384 39 10/6/2026
10.0.383 91 10/5/2026
10.0.382 83 10/5/2026
10.0.380 90 10/5/2026
10.0.379 79 10/5/2026
10.0.378 96 10/2/2026
10.0.372 105 10/2/2026
10.0.370 100 10/2/2026
10.0.369 144 9/29/2026
10.0.368 125 9/28/2026
10.0.366 159 9/24/2026
10.0.365 130 9/23/2026
10.0.364 176 9/17/2026
10.0.363 135 9/17/2026
10.0.362 137 9/17/2026
10.0.361 132 9/17/2026
10.0.360 147 9/14/2026
10.0.359 130 9/14/2026
Loading failed