pengdows.crud
1.0.1756777911
dotnet add package pengdows.crud --version 1.0.1756777911
NuGet\Install-Package pengdows.crud -Version 1.0.1756777911
<PackageReference Include="pengdows.crud" Version="1.0.1756777911" />
<PackageVersion Include="pengdows.crud" Version="1.0.1756777911" />
<PackageReference Include="pengdows.crud" />
paket add pengdows.crud --version 1.0.1756777911
#r "nuget: pengdows.crud, 1.0.1756777911"
#:package pengdows.crud@1.0.1756777911
#addin nuget:?package=pengdows.crud&version=1.0.1756777911
#tool nuget:?package=pengdows.crud&version=1.0.1756777911
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
andGetSchema("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 | Versions 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. |
-
net8.0
- Microsoft.Extensions.Configuration.Binder (>= 9.0.6)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.6)
- pengdows.crud.abstractions (>= 1.0.1756777911)
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 |