SQLStoredProcedureCommandsFunctions 1.0.4
See the version list below for details.
dotnet add package SQLStoredProcedureCommandsFunctions --version 1.0.4
NuGet\Install-Package SQLStoredProcedureCommandsFunctions -Version 1.0.4
<PackageReference Include="SQLStoredProcedureCommandsFunctions" Version="1.0.4" />
<PackageVersion Include="SQLStoredProcedureCommandsFunctions" Version="1.0.4" />
<PackageReference Include="SQLStoredProcedureCommandsFunctions" />
paket add SQLStoredProcedureCommandsFunctions --version 1.0.4
#r "nuget: SQLStoredProcedureCommandsFunctions, 1.0.4"
#:package SQLStoredProcedureCommandsFunctions@1.0.4
#addin nuget:?package=SQLStoredProcedureCommandsFunctions&version=1.0.4
#tool nuget:?package=SQLStoredProcedureCommandsFunctions&version=1.0.4
SQLStoredProcedureCommandsFunctions 1.0.4
A lightweight yet powerful SQL Server data-access library that simplifies working with stored procedures, DataTables, SQL parameters, and Azure SQL authentication. Built for .NET 10 enterprise applications requiring clean, reusable, and high-performance database access.
🚀 Features
✔ Full Data Access Layer (DAL)
Rich APIs for executing SQL commands:
ExecuteNonQueryExecuteScalarExecuteDatasetExecuteReaderExecuteXmlReader
Supports:
- sync & async programming
- Connection string, SqlConnection, or SqlTransaction
- Stored procedures or raw SQL
- Automatic command preparation
✔ SQLSPResultMapper Introduction
New high-level strongly-typed stored procedure execution layer built on top of the existing DAL.
SQLSPResultMapper allows executing a stored procedure once and automatically mapping results into:
List<T>IEnumerable<T>- Multi-table →
Dictionary<string, List<T>> - Dynamic →
Dictionary<string, List<Dictionary<string, object?>>>
Supports:
- Sync & Async methods
- Automatic DataSet → POCO mapping
- Case-insensitive column-property matching
- Nullable property handling
- DBNull → null conversion
- Multi-table stored procedure support
- Clean service-layer integration
Example:
var users = await SQLSPResultMapper.ExecuteToListAsync<UserDto>(
connectionString,
"GetUsers",
true);
Designed to eliminate repetitive DataTable conversion code and reduce boilerplate in enterprise applications and microservices.
✔ Stored Procedure Parameter Caching
- Automatically discovers stored procedure parameters
- Caches them using synchronized hashtable
- Fast repeated execution
- Eliminates
DeriveParametersoverhead
✔ SQL Parameter Utilities
- Convert C# classes → SqlParameter list
[IgnoreDBParameter]attribute to skip properties- Automatic SqlDbType inference
- Create strongly typed parameters easily
✔ Data Conversion Helpers
DataTable→List<T>/IEnumerable<T>List<T>/IEnumerable<T>→DataTableDataSet/DataTable→Dictionary- Column reordering & shifting utilities
✔ Legacy-style SqlHelper (Optional)
- Transaction support
- Bulk SP execution
- Dataset update utilities
📦 Installation
Install from NuGet:
dotnet add package SQLStoredProcedureCommandsFunctions --version 1.0.4
| Product | Versions 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. |
-
net10.0
- Microsoft.Data.SqlClient (>= 6.1.4)
- Microsoft.Extensions.Configuration (>= 10.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Release Notes - v1.0.4
✨ Key Features
1. High-Performance Stored Procedure Execution
Execute NonQuery, Scalar, Reader, Dataset, XmlReader operations.
Full support for sync and async methods.
Overloads for:
Raw SQL commands
Stored procedure name
Parameter arrays
Strongly-typed object parameters
2. Built-In Transaction Support
Easy transaction lifecycle management:
InitializeTransaction()
Commit()
Rollback()
Safe handling of shared connections.
3. Automatic SQL Parameter Discovery & Caching
SQLHelperParameterCache creates and caches stored procedure parameter sets.
Avoids repeated trips to SQL Server using DeriveParameters.
Provides deep clones to ensure thread-safety.
4. Object-to-SQL Parameter Mapping
SQLParamHelper allows:
Auto-generation of SqlParameter list from an object.
Support for numeric, string, GUID, datetime, boolean, and other primitives.
Attribute [IgnoreDbParameter] to omit properties from mapping.
5. SQLSpResultMapper – Strongly-Typed Result Mapping (NEW - 2026-02-23)
Introduced SQLSpResultMapper to simplify stored procedure result handling.
Enables execution + automatic mapping into:
List<T>
IEnumerable<T>
Dictionary<string, List<T>> (multi-table strong typing)
Dictionary<string, List<Dictionary<string, object?>>> (dynamic mapping)
Supports:
Sync & Async execution
Case-insensitive column/property matching
Nullable property handling
DBNull → null conversion
Multi-table stored procedures
Eliminates repetitive DataTable-to-List conversion logic and reduces boilerplate in enterprise applications.
6. DataSet & DataTable Conversion Utilities
Included in DataAccessConverter, offering:
Convert:
DataTable → List<T>
DataTable → IEnumerable<T>
DataSet → Dictionary<string, List<object>>
List<T> → DataTable
Multiple lists → DataSet
Advanced helpers:
Select distinct values
Shift column ordering
Move/rename table columns
7. Extension Methods for DataTable Manipulations
Included in DataTableExtensions:
Move one or more columns to specific indices.
Get column names by index.
Reorder columns without breaking row data.
8. Streamlined Data Access Layer
The DataAccessLayer class provides a clean API for:
Sync/async CRUD operations
Command preparation
Reader handling
Strong validation for:
Connection state
Null parameters
Argument correctness
🔧 Internal Enhancements
Safe cloning of SQL parameters before execution.
Consistent use of CommandTimeout for long-running procedures.
Support for both internal and external connection ownership modes.
Uses Microsoft.Data.SqlClient for modern SQL Server connectivity.
Centralized execution pipeline reused by SQLSpResultMapper.
🐛 Known Limitations
Does not support Dapper-style automatic mapping (future enhancement possible).
SQL bulk copy not included in this version.
Parameter type inference follows simplified rules and may need extension for complex types.
Reflection-based mapping used in SQLSpResultMapper (expression-tree optimization planned).
📦 Target Frameworks
.NET 10
📘 Documentation
For full samples, including:
CRUD examples
Async patterns
Stored procedure patterns
Strongly-typed mapping examples
Multi-table stored procedure handling