DigitTwin.UniversalContextConnector.Abstractions
0.0.1
dotnet add package DigitTwin.UniversalContextConnector.Abstractions --version 0.0.1
NuGet\Install-Package DigitTwin.UniversalContextConnector.Abstractions -Version 0.0.1
<PackageReference Include="DigitTwin.UniversalContextConnector.Abstractions" Version="0.0.1" />
<PackageVersion Include="DigitTwin.UniversalContextConnector.Abstractions" Version="0.0.1" />
<PackageReference Include="DigitTwin.UniversalContextConnector.Abstractions" />
paket add DigitTwin.UniversalContextConnector.Abstractions --version 0.0.1
#r "nuget: DigitTwin.UniversalContextConnector.Abstractions, 0.0.1"
#:package DigitTwin.UniversalContextConnector.Abstractions@0.0.1
#addin nuget:?package=DigitTwin.UniversalContextConnector.Abstractions&version=0.0.1
#tool nuget:?package=DigitTwin.UniversalContextConnector.Abstractions&version=0.0.1
DigitTwin.UniversalContextConnector.Abstractions
Описание
DigitTwin.UniversalContextConnector.Abstractions — это универсальная библиотека абстракций для работы с различными типами SQL и NoSQL баз данных в .NET-проектах. Она предоставляет стандартные интерфейсы для репозиториев, миграций и конфигурации подключения, что позволяет реализовать единый подход к работе с разными СУБД в рамках архитектуры Digital Twin.
Основные возможности
- Унифицированные интерфейсы для работы с репозиториями данных (
IRepository<TEntity, TKey>
) - Абстракция для управления миграциями БД (
IDatabaseMigrator
) - Гибкая конфигурация подключения к БД через класс
DatabaseConfiguration
- Поддержка различных типов баз данных через перечисление
DatabaseTypeEnum
:- MS SQL Server
- PostgreSQL
- MySQL
- MongoDB
- Redis
- ClickHouse
Структура
DatabaseConfiguration
Класс для описания параметров подключения к базе данных:
Name
— уникальное имя подключения (для DI)ConnectionString
— строка подключенияType
— тип базы данных (DatabaseTypeEnum
)DatabaseName
— имя базы данных (актуально для MongoDB/ClickHouse)
DatabaseTypeEnum
Перечисление поддерживаемых типов баз данных:
SqlServer
Postgres
MySql
MongoDb
Redis
ClickHouse
IRepository<TEntity, TKey>
Базовый интерфейс репозитория для CRUD-операций:
Task<TEntity> GetById(TKey id)
— получить сущность по идентификаторуTask<IEnumerable<TEntity>> GetAll()
— получить все сущностиTask Add(TEntity entity)
— добавить сущностьTask Update(TEntity entity)
— обновить сущностьTask Delete(TKey id)
— удалить сущность по идентификатору
IDatabaseMigrator
Интерфейс для управления миграциями:
Task MigrateAsync()
— применить миграции к базе данных
Установка
Добавьте ссылку на пакет в ваш проект (после публикации в NuGet):
dotnet add package DigitTwin.UniversalContextConnector.Abstractions
Или добавьте проект как зависимость в вашей solution:
<ItemGroup>
<ProjectReference Include="../DigitTwin.UniversalContextConnector.Abstractions/DigitTwin.UniversalContextConnector.Abstractions.csproj" />
</ItemGroup>
Пример использования
using DigitTwin.UniversalContextConnector.Abstractions;
public class MyEntityRepository : IRepository<MyEntity, int>
{
// Реализация методов интерфейса
public Task<MyEntity> GetById(int id) { /* ... */ }
public Task<IEnumerable<MyEntity>> GetAll() { /* ... */ }
public Task Add(MyEntity entity) { /* ... */ }
public Task Update(MyEntity entity) { /* ... */ }
public Task Delete(int id) { /* ... */ }
}
// Конфигурация подключения
var config = new DatabaseConfiguration
{
Name = "Default",
ConnectionString = "Server=localhost;Database=example;User Id=sa;Password=your_password;",
Type = DatabaseTypeEnum.SqlServer,
DatabaseName = "example"
};
Требования
- .NET 8.0 и выше
Лицензия
MIT (уточните при необходимости)
Авторы
- YourName (замените на актуального автора)
Данная библиотека предназначена для использования в составе Digital Twin решений и может быть расширена для поддержки других СУБД и сценариев.
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. net10.0 was computed. 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. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
0.0.1 | 151 | 7/4/2025 |