Reo.Core.Database 10.0.383

dotnet add package Reo.Core.Database --version 10.0.383
                    
NuGet\Install-Package Reo.Core.Database -Version 10.0.383
                    
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.383
                    
#r "nuget: Reo.Core.Database, 10.0.383"
                    
#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.383
                    
#: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.383
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Database&version=10.0.383
                    
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.383 33 10/5/2026
10.0.382 46 10/5/2026
10.0.380 50 10/5/2026
10.0.379 44 10/5/2026
10.0.378 64 10/2/2026
10.0.372 72 10/2/2026
10.0.370 67 10/2/2026
10.0.369 110 9/29/2026
10.0.368 121 9/28/2026
10.0.366 155 9/24/2026
10.0.365 126 9/23/2026
10.0.364 170 9/17/2026
10.0.363 133 9/17/2026
10.0.362 135 9/17/2026
10.0.361 130 9/17/2026
10.0.360 146 9/14/2026
10.0.359 129 9/14/2026
10.0.358 136 9/14/2026
10.0.357 128 9/14/2026
10.0.356 127 9/14/2026
Loading failed