Repository navigation
SqlLinqer 2.3.1
SqlLinqer 2.3.1 fixes the missing no-input procedure contract. Define procedures as SqlLinqerCallable<TOutput> and call Execute(), ExecuteAsync(), or Render() without an empty input model.
[SqlProcedure("GetUsers", Schema = "dbo")]
public sealed class GetUsers : SqlLinqerCallable<UserRow> { }
// Inside an application method:
var response = await new GetUsers().ExecuteAsync(connector, cancellationToken: cancellationToken);The new contract supports SQL Server and Azure SQL, output row models and scalar types, retained/default/explicit connectors, caller-owned transactions, per-call command timeouts, and asynchronous cancellation. Responses retain the existing rows, return code, affected-row count, and automatically discovered standard total outputs.
SqlLinqerCallable<TInput, TOutput> remains supported, including existing empty input models. Procedure mapping and execution are shared between the two contracts. No migration is required for existing calls.
Install matching 2.3.1 versions of SqlLinqer, SqlLinqer.Diagnostics, and SqlLinqer.Extensions.DependencyInjection when using the optional packages. All three continue to target .NET Standard 2.0.
Validation
Added 13 focused regression checks, real SqlClient syntax and binding coverage, and a live SQL Server case covering no-input execution in both styles, all connector routes, standard total outputs, return codes, and caller-owned transactions. Existing procedure checks remain in place. All six database suites passed 3,695 checks with no failures, including the new no-input SQL Server execution case.
The pre-release validation workflow passed, including disposable PostgreSQL, MySQL, and SQL Server suites, compatibility builds, integration and HTTP checks, formatting, stable SQL JSON contracts, and minimum SQLite 3.38. A package-only consumer also passed 58 checks using locally packed 2.3.1 packages. Actual Azure SQL and .NET Framework 4.8 runtime execution are not covered.
Stored-procedure guide · Changes since 2.3.0
Publication status
The release workflow passed all validation, packing, and NuGet publishing jobs. NuGet accepted all three 2.3.1 packages. As of 2026-10-26 19:33 UTC, all three versions are still unavailable in the public NuGet feed. A fresh nuget.org-only restore reports NU1102 for 2.3.1, so public-package verification remains pending. All 58 consumer checks passed using locally packed 2.3.1 packages.