Calabonga.UnitOfWork 5.0.0-beta.2

This is a prerelease version of Calabonga.UnitOfWork.
dotnet add package Calabonga.UnitOfWork --version 5.0.0-beta.2                
NuGet\Install-Package Calabonga.UnitOfWork -Version 5.0.0-beta.2                
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.
<PackageReference Include="Calabonga.UnitOfWork" Version="5.0.0-beta.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Calabonga.UnitOfWork --version 5.0.0-beta.2                
#r "nuget: Calabonga.UnitOfWork, 5.0.0-beta.2"                
#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.
// 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.

Ссылки

Автор

Author

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.