Calabonga.UnitOfWork 6.0.0
UnitOfWork
Реализация паттерна "Unit Of Work" для EntityFrameworkCore на платформе .NET. This is a Unit ofWork pattern implementation on .NET.
Версии
6.0.0 2025-03-05
- Deprecated methods were removed. Please use
TrackingTypeparameter instead ofdisableTracking. - New release
6.0.0published.
5.0.0 2024-11-25
- Released new
5.0.0version - Deprecated methods will remove soon. Please use new overrides with
TrackingTypeparameter.
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
Автор

No packages depend on Calabonga.UnitOfWork.
.NET 8.0
- Calabonga.PagedListCore (>= 1.0.4)
- Microsoft.EntityFrameworkCore (>= 8.0.11)
- Microsoft.EntityFrameworkCore.Relational (>= 8.0.11)
.NET 9.0
- Calabonga.PagedListCore (>= 1.0.4)
- Microsoft.EntityFrameworkCore (>= 9.0.0)
- Microsoft.EntityFrameworkCore.Relational (>= 9.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 10.0.0-beta.1 | 0 | 21.11.2025 |
| 6.2.0 | 0 | 21.11.2025 |
| 6.2.0-beta.1 | 1 | 10.11.2025 |
| 6.1.0 | 1 | 10.11.2025 |
| 6.1.0-beta.1 | 1 | 10.11.2025 |
| 6.0.0 | 4 | 08.08.2025 |
| 6.0.0-beta.2 | 3 | 08.08.2025 |
| 6.0.0-beta.1 | 3 | 08.08.2025 |
| 5.0.0 | 2 | 08.08.2025 |
| 5.0.0-beta.2 | 3 | 08.08.2025 |
| 5.0.0-beta.1 | 3 | 08.08.2025 |
| 4.0.0 | 3 | 08.08.2025 |
| 4.0.0-beta.3 | 3 | 08.08.2025 |
| 4.0.0-beta.2 | 3 | 08.08.2025 |
| 4.0.0-beta.1 | 3 | 08.08.2025 |
| 3.1.0 | 3 | 08.08.2025 |
| 3.0.1 | 3 | 08.08.2025 |
| 3.0.0 | 3 | 08.08.2025 |
| 2.1.0 | 3 | 08.08.2025 |
| 2.1.0-beta2 | 3 | 08.08.2025 |
| 2.1.0-beta1 | 3 | 08.08.2025 |
| 2.0.0 | 3 | 08.08.2025 |
| 1.0.7 | 3 | 08.08.2025 |
| 1.0.6 | 3 | 08.08.2025 |
| 1.0.5 | 3 | 08.08.2025 |
| 1.0.3 | 3 | 08.08.2025 |
| 1.0.2 | 3 | 08.08.2025 |
| 1.0.1 | 3 | 08.08.2025 |
| 1.0.0 | 3 | 08.08.2025 |