Calabonga.UnitOfWork
5.0.0-beta.2
dotnet add package Calabonga.UnitOfWork --version 5.0.0-beta.2
NuGet\Install-Package Calabonga.UnitOfWork -Version 5.0.0-beta.2
<PackageReference Include="Calabonga.UnitOfWork" Version="5.0.0-beta.2" />
paket add Calabonga.UnitOfWork --version 5.0.0-beta.2
#r "nuget: Calabonga.UnitOfWork, 5.0.0-beta.2"
// Install Calabonga.UnitOfWork as a Cake Addin #addin nuget:?package=Calabonga.UnitOfWork&version=5.0.0-beta.2&prerelease // Install Calabonga.UnitOfWork as a Cake Tool #tool nuget:?package=Calabonga.UnitOfWork&version=5.0.0-beta.2&prerelease
UnitOfWork
Реализация паттерна "Unit Of Work" для EntityFrameworkCore на платформе .NET. This is a Unit ofWork pattern implementation on .NET.
Версии
5.0.0-beta.2 2024-11-23
- Добавлена поддержка фреймворка NET9.0 наряду с фреймворком NET8.0 (Added support for NET9.0 framework along with NET8.0 framework). Теперь в одном пакете поддержка двух версий.
5.0.0-beta.1 2024-11-03
Созданые перегрузки для всех методов, где используется параметр
disableTracking
с целью дополнить новым способом управления слежением за изменениями. Теперь доступно выбрать один из вариантов:/// <summary> /// Changes Tracking Type for DbSet operations /// </summary> public enum TrackingType { NoTracking, NoTrackingWithIdentityResolution, Tracking }
Если вы используте сборку
Calabonga.UnitOfWork
впервые, то никаких действий дополнительных не потребуется. А если вы обновляете сборку на проекте, где уже был использованоCalabonga.UnitOfWork
, то для использования новых методов достаточно указать явно тип слежения за изменениями. Пример кода без использования явного типа слежения:public async Task<IEnumerable<PictureFile>> GetFilesForPostAsync(Guid postId, CancellationToken cancellationToken) { var maps = await _unitOfWork .GetRepository<ImageMapLink>() .GetAllAsync(predicate: x => x.PostId == postId); // <= Error after update 5.0.x if (maps.Any()) { return maps.ToList().Select(x => new PictureFile(x.ImageSrc, x.MappedSrc!)); } return []; }
Достаточно явно добавить тип ``
public async Task<IEnumerable<PictureFile>> GetFilesForPostAsync(Guid postId, CancellationToken cancellationToken) { var maps = await _unitOfWork .GetRepository<ImageMapLink>() .GetAllAsync(predicate: x => x.PostId == postId, trackingType: TrackingType.NoTracking); // <= Add explicit value if (maps.Any()) { return maps.ToList().Select(x => new PictureFile(x.ImageSrc, x.MappedSrc!)); } return []; }
Методы, где используется параметр
disableTracking
, помечены атрибутомobsolete
, что означает, что в последующих версиях данные методы будут удалены.Исправлены дубликаты кода, возникшие при склеивании веток (спасибо Andrey).
4.0.0 от 2024-02-25
- Обновлена версия сборки до .NET8.
IPagedList<T>
вынесен в свой собственный nuget-пакетCalabogna.PagedListCore
.- Обновлена документация https://calabonga.github.io/UnitOfWork/
3.1.0 от 2023-03-25
- Обновлены nuget-пакеты EntityFramework
- Добавлены дополнительные параметры в методы
IRepository<T>
для управленияAutoIncludes
. - Обновлена документация https://calabonga.github.io/UnitOfWork/
2022-02-08
- Сборка переведена на NET6.0. В проект был обновлен (Nullable = true)
- Обновлены методы на предмет обработки Nullable типов
- Удалена сборка AutoHistory по причине отсутствия поддержки ее NET6.0.
Ссылки
- EntityFramework Core и паттерны "Unit of Work" и "Repository" (ru)
- Документация API
- Блог по программированию
- Boosty.To
- Пишите комментарии к видео на сайте www.calabonga.net
Автор
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 is compatible. |
-
net8.0
- Calabonga.PagedListCore (>= 1.0.4)
- Microsoft.EntityFrameworkCore (>= 8.0.11)
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.11)
-
net9.0
- Calabonga.PagedListCore (>= 1.0.4)
- Microsoft.EntityFrameworkCore (>= 9.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 9.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Calabonga.UnitOfWork:
Package | Downloads |
---|---|
Calabonga.UnitOfWork.Controllers
Unit of Work implementation over ASP.NET Core Controllers |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Calabonga.UnitOfWork:
Repository | Stars |
---|---|
Calabonga/Microservice-Template
Templates for microservice architecture. Nimble Microservice Framework contains two modules. The first with OpenIddict and the second without OpenIddict. Templates are built on ASP.NET Core platform with different versions Core3.1, NET6, NET7 and NET8. You can create a new project extremely fast: in Visual Studio, Rider, dotnet CLI.
|
Version | Downloads | Last updated |
---|---|---|
5.0.0-beta.2 | 22 | 11/23/2024 |
5.0.0-beta.1 | 46 | 11/3/2024 |
4.0.0 | 723 | 2/25/2024 |
4.0.0-beta.3 | 159 | 1/8/2024 |
4.0.0-beta.2 | 73 | 1/5/2024 |
4.0.0-beta.1 | 84 | 12/29/2023 |
3.1.0 | 1,944 | 3/25/2023 |
3.0.1 | 783 | 12/25/2022 |
3.0.0 | 1,968 | 2/8/2022 |
2.1.0 | 2,202 | 3/15/2021 |
2.1.0-beta2 | 303 | 3/12/2021 |
2.1.0-beta1 | 276 | 3/11/2021 |
2.0.0 | 1,211 | 1/29/2021 |
1.0.7 | 1,694 | 9/25/2020 |
1.0.6 | 3,409 | 5/28/2020 |
1.0.5 | 3,210 | 1/30/2020 |
1.0.3 | 662 | 1/21/2020 |
1.0.2 | 725 | 1/21/2020 |
1.0.1 | 553 | 1/21/2020 |
1.0.0 | 998 | 12/30/2019 |
TrackingType parameter created to split type of changes tracking for DbContext operations: NoTraking, Tracking and NoTrackingWithIdentityResolution.