Nabu.Data.EntityFramework 3.6.5


Nabû: .NET data manipulation

.Net C# apache2-license CI Status


Nabû is an open-source suite of libraries designed to manipulate structured data in .NET development through streamlined interactions.
It's divided into Two components:

  • Nabu.Data: Provides data manipulation abstraction, encompassing CRUD operations and sophisticated querying using LinQ.
  • Nabu.Storage: Provides standardized file manipulation abstractions, catering to local, remote, and cloud-based files.

Latest packages

Data Nuget Data.EntityFramework Nuget Data.EntityFramework.Blazor Nuget Data.LiteDb Nuget
Storage Nuget Storage.Local Nuget Storage.Minio Nuget Storage.LiteDb Nuget

Installation

Before installing Nabû, make sure to add the custom NuGet source to your configuration.
Open a terminal or command prompt and run the following command:

dotnet nuget add source "https://nuget.kworld.dev/v3/index.json" -n "kworld NuGet"

Now you can install the various components of Nabû with the following commands:


# Nabu.Data
dotnet add package my_awesome_project.csproj Nabu.Core 
dotnet add package my_awesome_project.csproj Nabu.Data.EntityFramework # For EntityFramework implementation
dotnet add package my_awesome_project.csprojNabu.Data.LiteDb # For LiteDB implementation

# Nabu.Storage
dotnet add package my_awesome_project.csproj Nabu.Storage
dotnet add package my_awesome_project.csproj Nabu.Storage.Local # For local storage
dotnet add package my_awesome_project.csproj Nabu.Storage.Minio # For Minio (Amazon S3) storage

Getting started

IDao: Data manipulation Interface

Nabu.Data provide the IDao interface in order to standardize data CRUD.

Usage


public class User : IEntity
{
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public DateTime Creation { get; set; } = DateTime.UtcNow;
    public DateTime Update { get; set; } = DateTime.UtcNow;
    
    public string? Name { get; set; }
    public int Age { get; set; }
    
    public List<Car> Cars { get; set; } = new();
}


public class Car : IEntity
{
    public string Id { get; set; } = Guid.NewGuid().ToString();
    public DateTime Creation { get; set; } = DateTime.UtcNow;
    public DateTime Update { get; set; } = DateTime.UtcNow;

    public string? Imatriculation { get; set; }
    public string? Model { get; set; }
    
    [ForeignKey("OwnerId")]
    public User? Owner {get;set;}
    public string? OwnerId { get; set; }
}

public class Main
{
    public async Task ExempleMethod()
    {
      
        await using IServiceRegisterProvider provider; //from IOC
        await using IServiceRegistryScope scope = provider.CreateAsyncScope();
        await using IServiceRegisterProvider scopeProvider = scope.ServiceProvider;
        
        IDao? dao = scopeProvider.GetService<IDao>();
        
        
        User cosette = new() { Name = "Cosette", Age = 25 };
        User jean = new() { Name = "Jean Valjean", Age = 55 };
        
        cosette = await dao.AddAsync(cosette);
        jean = await dao.AddAsync(jean);
        
        Car car = new() { Imatriculation = $"CCC-BBB-1", OwnerId = null};
        await dao.AddAsync(car);
        
        Car car2 = new() { Imatriculation = $"CCC-BBB-2", OwnerId = cosette.Id};
        await dao.AddAsync(car2);
        
        car.OwnerId = cosette.id;
        await dao.UpdateAsync(car);
        
        ISpecification<Car> carSpecification = new Specification<Car> { Criteria = c => c.OwnerId == cosette.Id };
        carSpecification.OrderBy(c => c.Creation).ThenBy(c => c.Update);
        
        var dbCars = await dao.ListAllAsync(carSpecification);
        
    }
}


Documentation

For comprehensive insights into the capabilities and nuances of Nabû, refer to the official documentation:

Documentation Link

Contributing

Join us in enhancing Nabû! We welcome contributions in the form of suggestions, bug reports, and pull requests. Check out the Contribution Guidelines to get involved.

License

This project operates under the Apache 2.0 License. For more details, refer to the LICENSE file.

Why "Nabû" ?

Nabû (Akkadian: cuneiform: 𒀭𒀝) is the name of and old Mesopotamian God.
In ancient cultures, Nabû was revered as a deity associated with wisdom, scholarship, and the recording of informations. Nabû's symbols included a stylus resting on a tablet.

By adopting those name and symbols, this suite of libraries refers, in a cool way, to the the art of writing and recording of informations.

Showing the top 20 packages that depend on Nabu.Data.EntityFramework.

Packages Downloads
Nabu.Data.EntityFramework.Blazor
Package Description
1,066
Nabu.Data.EntityFramework.Blazor
Package Description
802
Nabu.Data.EntityFramework.Blazor
Package Description
649
Nabu.Data.EntityFramework.Blazor
Package Description
517
Nabu.Data.EntityFramework.Blazor
Package Description
393
Nabu.Data.EntityFramework.Blazor
Package Description
380
Nabu.Data.EntityFramework.Blazor
Package Description
327
Nabu.Data.EntityFramework.Blazor
Package Description
304
Nabu.Data.EntityFramework.Blazor
Package Description
293
Nabu.Data.EntityFramework.Blazor
Package Description
234
Nabu.Data.EntityFramework.Blazor
Package Description
177
Nabu.Data.EntityFramework.Blazor
Package Description
140
Nabu.Data.EntityFramework.Blazor
Package Description
125
Nabu.Data.EntityFramework.Blazor
Package Description
36
Nabu.Data.EntityFramework.Blazor
Package Description
32
Nabu.Data.EntityFramework.Blazor
Package Description
30
Nabu.Data.EntityFramework.Blazor
Package Description
29
Nabu.Data.EntityFramework.Blazor
Package Description
28

Change update entity track methode

Version Downloads Last updated
3.6.5 619 04/02/2026
3.6.4 895 03/18/2026
3.6.3 6 03/17/2026
3.6.2 614 02/16/2026
3.6.1 541 01/19/2026
3.6.0 624 12/22/2025
3.5.0 1,706 11/12/2025
3.5.0-rc2 392 11/05/2025
3.4.2 1,672 09/09/2025
3.4.1 1,232 08/05/2025
3.4.0 1,646 07/18/2025
3.3.6 289 07/08/2025
3.3.5 456 06/30/2025
3.3.4 1,814 05/13/2025
3.3.3 1,897 04/08/2025
3.3.2 2,035 03/13/2025
3.3.1 440 03/05/2025
3.3.0 27 03/05/2025
3.2.4 882 02/12/2025
3.2.3 98 02/11/2025
3.2.2 1,160 01/17/2025
3.2.1 125 01/14/2025
3.2.0 489 12/28/2024
3.1.0 707 12/11/2024
3.0.2 106 12/09/2024
3.0.1 96 11/26/2024
2.2.4 1,506 09/12/2024
2.2.3 1,719 08/23/2024
2.2.2 37 08/23/2024
2.2.1 252 08/21/2024
2.2.0 28 08/21/2024
2.1.0 88 07/31/2024
2.0.0 519 06/10/2024
1.4.1 326 06/07/2024
1.4.0 123 05/28/2024
1.3.2 396 05/16/2024
1.3.1 29 05/16/2024
1.3.0 29 05/15/2024
1.3.0-beta 28 03/05/2024
1.2.0 73 03/29/2024
1.1.0 28 03/29/2024
1.0.0.1 29 03/29/2024