pengdows.crud 1.0.1756777911

dotnet add package pengdows.crud --version 1.0.1756777911
                    
NuGet\Install-Package pengdows.crud -Version 1.0.1756777911
                    
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="pengdows.crud" Version="1.0.1756777911" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="pengdows.crud" Version="1.0.1756777911" />
                    
Directory.Packages.props
<PackageReference Include="pengdows.crud" />
                    
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 pengdows.crud --version 1.0.1756777911
                    
#r "nuget: pengdows.crud, 1.0.1756777911"
                    
#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 pengdows.crud@1.0.1756777911
                    
#: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=pengdows.crud&version=1.0.1756777911
                    
Install as a Cake Addin
#tool nuget:?package=pengdows.crud&version=1.0.1756777911
                    
Install as a Cake Tool

pengdows.crud

pengdows.crud is a SQL-first, strongly-typed, testable data access layer for .NET. It’s built for developers who want full control over SQL, predictable behavior across databases, and no ORM magic.

No LINQ. No tracking. No surprises.


πŸ” Why pengdows.crud?

  • Built by a dev who actually writes SQL, understands ACID, and doesn’t want ORMs rewriting queries behind their back.
  • Works across databases using consistent, standards-compliant behavior.
  • Handles parameterization, enums, JSON, audit fields, and transactionsβ€”out of the box.
  • Offers full dependency injection, fine-grained connection control, and true multi-tenancy.

βœ… Key Features

  • EntityHelper<TEntity, TRowID>: automatic CRUD with custom SQL injection points.
  • Full support for:
    • Enums
    • JSON
    • GUIDs
    • UTC timestamps
  • Built-in audit tracking per entity and per field.
  • Safe SQL generation with strict parameterization (@, :, or ? depending on provider).
  • Connection lifecycle modes: New, Shared, KeepAlive.
  • Scoped transactions via TransactionContext.
  • Works cleanly with DI and ADO.NETβ€”no leaky abstractions.

🧩 Supported Databases

Tested and tuned for:

  • SQL Server / Express / LocalDB
  • PostgreSQL / TimescaleDB
  • Oracle
  • MySQL / MariaDB
  • SQLite
  • Firebird
  • CockroachDB

All tested against .NET 8 with native ADO.NET providers. Must support DbProviderFactory and GetSchema("DataSourceInformation").


❌ Not Supported

Due to missing or outdated .NET providers:

  • TimesTen
  • DB2
  • Informix
  • Sybase ASE
  • SQL Anywhere

Want support? Ask the vendor to ship a real ADO.NET provider.


🚫 Not an ORM β€” On Purpose

pengdows.crud doesn't:

  • Track entities
  • Auto-generate complex queries
  • Obfuscate SQL

Instead, it helps you write real SQL that's:

  • Predictable
  • Testable
  • Secure

🧠 Philosophy

  • Primary keys β‰  pseudokeys
  • Open late, close early β€” manage connections responsibly
  • Parameterize everything β€” always
  • Audit everything β€” store in UTC
  • Don't assume β€” use provider metadata (DbProviderFactory, GetSchema)
  • Test in production-like environments β€” not theory

πŸ”¬ Tool Comparison

Feature pengdows.crud Raw ADO.NET Dapper EF Core NHibernate
Provider-Agnostic SQL βœ… ⚠️ Manual ⚠️ ⚠️ ⚠️
Safe Parameterization βœ… ❌ Risky ⚠️ βœ… βœ…
Audit Field Support βœ… Built-in ❌ ❌ ⚠️ ⚠️
Change Tracking ❌ Explicit ❌ ❌ βœ… βœ…
LINQ ❌ ❌ ❌ βœ… ⚠️
Strong Typing βœ… ⚠️ Manual ⚠️ βœ… βœ…
Multi-tenancy βœ… Opt-in ❌ ❌ ⚠️ ⚠️
Async/Await Support βœ… Fully ⚠️ Provider βœ… βœ… ⚠️
Transaction Scoping βœ… Layered ❌ ❌ βœ… βœ…
Testability βœ… Interfaces ❌ ⚠️ ⚠️ ⚠️
Migration Tooling ❌ By Design ❌ ❌ βœ… βœ…

πŸ“š Documentation

Topics include:

  • EntityHelper<TEntity, TRowID>
  • SqlContainer
  • DbMode and connection management
  • Audit and UTC logging
  • Transaction scopes
  • Type coercion and mapping
  • Primary vs. pseudokeys
  • Extending core helpers

πŸ› οΈ Getting Started

dotnet add package pengdows.crud
using System.Data.SqlClient;
using pengdows.crud;

var db = new DatabaseContext("your-connection-string", SqlClientFactory.Instance);
var helper = new EntityHelper<MyEntity, long>(db);
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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
1.0.1756777911 142 9/2/2025
1.0.1756431873 178 8/29/2025
1.0.1756401895 176 8/28/2025
1.0.1756206653 196 8/26/2025
1.0.1756088498 206 8/25/2025
1.0.1755050805 136 8/13/2025
1.0.1754686097 135 8/8/2025
1.0.1754519641 207 8/6/2025
1.0.1753961768 115 7/31/2025
1.0.1753226590 539 7/22/2025
1.0.1753131093 484 7/21/2025
1.0.1753123740 481 7/21/2025
1.0.1752539642 141 7/15/2025
1.0.1752508990 148 7/14/2025
1.0.1752431736 138 7/13/2025
1.0.1752421362 137 7/13/2025
1.0.1752412981 139 7/13/2025
1.0.1752406306 101 7/13/2025
1.0.1752274271 72 7/11/2025
1.0.1752241158 105 7/11/2025
1.0.1752144606 143 7/10/2025
1.0.1752014492 149 7/8/2025
1.0.1752007870 144 7/8/2025
1.0.1751844348 142 7/6/2025
1.0.1751581002 143 7/3/2025
1.0.1751559974 150 7/3/2025
1.0.1751557446 148 7/3/2025
1.0.1751545735 151 7/3/2025
1.0.1751545456 146 7/3/2025
1.0.1751541717 141 7/3/2025
1.0.1751541139 144 7/3/2025
1.0.1751369629 145 7/1/2025
1.0.1750872390 143 6/25/2025
1.0.1750787107 146 6/24/2025
1.0.1750786657 148 6/24/2025
1.0.1750785824 143 6/24/2025
1.0.1750719855 140 6/23/2025
1.0.1744725713 210 4/15/2025
1.0.1744631557 200 4/14/2025
1.0.1744033596 245 4/7/2025
1.0.1743862891 99 4/5/2025
1.0.1743392866 164 3/31/2025
1.0.1743388577 166 3/31/2025
1.0.0 148 6/23/2025
0.9.5515 2,542 2/6/2015
0.9.5349.19802 1,822 8/24/2014