SquidStd.Database 0.7.0

dotnet add package SquidStd.Database --version 0.7.0
                    
NuGet\Install-Package SquidStd.Database -Version 0.7.0
                    
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="SquidStd.Database" Version="0.7.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SquidStd.Database" Version="0.7.0" />
                    
Directory.Packages.props
<PackageReference Include="SquidStd.Database" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SquidStd.Database --version 0.7.0
                    
#r "nuget: SquidStd.Database, 0.7.0"
                    
#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.
#:package SquidStd.Database@0.7.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SquidStd.Database&version=0.7.0
                    
Install as a Cake Addin
#tool nuget:?package=SquidStd.Database&version=0.7.0
                    
Install as a Cake Tool

<p align="center"> <img src="https://raw.githubusercontent.com/tgiachi/squid-std/main/assets/icon.png" alt="SquidStd" width="120" height="120" /> </p>

<h1 align="center">SquidStd.Database</h1>

<p align="center"> <a href="https://www.nuget.org/packages/SquidStd.Database/"><img src="https://img.shields.io/nuget/v/SquidStd.Database.svg" alt="NuGet" /></a> <img src="https://img.shields.io/nuget/dt/SquidStd.Database.svg" alt="Downloads" /> <a href="https://tgiachi.github.io/squid-std/articles/database.html"><img src="https://img.shields.io/badge/docs-DocFX-1390A3.svg" alt="docs" /></a> <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license" /> </p>

FreeSql-backed implementation of the SquidStd.Database.Abstractions contracts. It owns a singleton IFreeSql, exposes a generic FreeSqlDataAccess<TEntity> with transactional writes (rollback on failure), bulk operations and paging, parses URI-style connection strings, and can auto-sync the schema on startup.

Install

dotnet add package SquidStd.Database

Features

  • One-line registration: container.RegisterDatabase() (config section + service + open-generic IDataAccess<>).
  • Providers via URI scheme: sqlite://, postgres://, sqlserver://, mysql://.
  • FreeSqlDataAccess<TEntity> — CRUD, bulk insert/update/delete, QueryAsync, GetPagedAsync; writes run inside a unit of work and roll back on error. Sets Id/Created/Updated automatically.
  • Optional AutoMigrate (FreeSql AutoSyncStructure) to create/update tables on startup.
  • ZLinq in-memory helpers for zero-allocation post-processing of materialized results.

Usage

using DryIoc;
using SquidStd.Database.Abstractions.Interfaces.Data;
using SquidStd.Database.Extensions;

var container = new Container();
container.RegisterDatabase(); // reads the "database" config section

// DatabaseConfig: ConnectionString = "postgres://user:pass@host:5432/app", AutoMigrate = true
var users = container.Resolve<IDataAccess<User>>();
await users.InsertAsync(new User { Name = "Ann" });
var page = await users.GetPagedAsync(page: 1, pageSize: 20, orderBy: u => u.Name);

Key types

Type Purpose
RegisterDatabaseExtension RegisterDatabase() DI registration.
DatabaseService Owns the singleton IFreeSql; builds it and (optionally) migrates.
FreeSqlDataAccess<TEntity> FreeSql IDataAccess<TEntity> implementation.
ConnectionStringParser URI → provider + native connection string.
ZLinqResultExtensions Zero-alloc in-memory result helpers.

License

MIT — part of SquidStd.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.7.0 45 6/26/2026
0.6.0 56 6/25/2026
0.5.1 44 6/25/2026
0.5.0 43 6/24/2026
0.4.0 41 6/23/2026
0.3.0 55 6/23/2026
0.2.0 56 6/22/2026