FML.Infrastructure.Data 1.0.0

FML.Infrastructure.Data

Data access infrastructure for FML applications using Entity Framework Core.

Installation

dotnet add package FML.Infrastructure.Data --source https://nuget.freakmylife.fr/v3/index.json

Dependencies

This package depends on:

  • FML.Infrastructure.Core
  • FML.Infrastructure.Auth

Components

IUnitOfWork

Encapsulates database context and transaction management.

// In Program.cs
services.AddInfrastructureData<MyDbContext>();

// In your service
public class MyService(IUnitOfWork unitOfWork)
{
    public async Task DoSomethingTransactional()
    {
        await using var transaction = await unitOfWork.BeginTransactionAsync();
        // ... do work
        await unitOfWork.CommitAsync();
        await transaction.CommitAsync();
    }
}

ICrudRepository

Generic CRUD repository with built-in pagination and filtering.

// Register repositories
services.AddCrudRepository<Product>();

// Use in service
public class ProductService(ICrudRepository<Product> repository)
{
    public async Task<List<Product>> GetProducts(int page, int limit)
    {
        return await repository.PaginateAsync(page, limit);
    }

    public async Task CreateProduct(Product product)
    {
        await repository.InsertAndCommitAsync(product);
    }
}

QueryableExtensions

Extension methods for applying pagination and ordering to IQueryable.

var parameters = new QueryParameters
{
    Page = 1,
    Limit = 20,
    OrderBy = "Name",
    OrderDesc = false
};

var results = await dbContext.Products
    .AddQueryParameters(parameters)
    .ToListAsync();

Configuration

services.AddInfrastructureData<MyDbContext>(options =>
{
    options.IsTestMode = false;
    options.TestUserId = null;
});

No packages depend on FML.Infrastructure.Data.

Version Downloads Last updated
1.0.0 2 02/07/2026