pengdows.crud
1.0.1751541717
See the version list below for details.
dotnet add package pengdows.crud --version 1.0.1751541717
NuGet\Install-Package pengdows.crud -Version 1.0.1751541717
<PackageReference Include="pengdows.crud" Version="1.0.1751541717" />
<PackageVersion Include="pengdows.crud" Version="1.0.1751541717" />
<PackageReference Include="pengdows.crud" />
paket add pengdows.crud --version 1.0.1751541717
#r "nuget: pengdows.crud, 1.0.1751541717"
#:package pengdows.crud@1.0.1751541717
#addin nuget:?package=pengdows.crud&version=1.0.1751541717
#tool nuget:?package=pengdows.crud&version=1.0.1751541717
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.1751541717)
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.1753961768 | 0 | 7/31/2025 |
1.0.1753226590 | 487 | 7/22/2025 |
1.0.1753131093 | 432 | 7/21/2025 |
1.0.1753123740 | 427 | 7/21/2025 |
1.0.1752539642 | 129 | 7/15/2025 |
1.0.1752508990 | 137 | 7/14/2025 |
1.0.1752431736 | 127 | 7/13/2025 |
1.0.1752421362 | 126 | 7/13/2025 |
1.0.1752412981 | 128 | 7/13/2025 |
1.0.1752406306 | 90 | 7/13/2025 |
1.0.1752274271 | 61 | 7/11/2025 |
1.0.1752241158 | 93 | 7/11/2025 |
1.0.1752144606 | 131 | 7/10/2025 |
1.0.1752014492 | 137 | 7/8/2025 |
1.0.1752007870 | 133 | 7/8/2025 |
1.0.1751844348 | 132 | 7/6/2025 |
1.0.1751581002 | 131 | 7/3/2025 |
1.0.1751559974 | 138 | 7/3/2025 |
1.0.1751557446 | 136 | 7/3/2025 |
1.0.1751545735 | 137 | 7/3/2025 |
1.0.1751545456 | 134 | 7/3/2025 |
1.0.1751541717 | 127 | 7/3/2025 |
1.0.1751541139 | 132 | 7/3/2025 |
1.0.1751369629 | 133 | 7/1/2025 |
1.0.1750872390 | 133 | 6/25/2025 |
1.0.1750787107 | 137 | 6/24/2025 |
1.0.1750786657 | 141 | 6/24/2025 |
1.0.1750785824 | 135 | 6/24/2025 |
1.0.1750719855 | 133 | 6/23/2025 |
1.0.1744725713 | 204 | 4/15/2025 |
1.0.1744631557 | 193 | 4/14/2025 |
1.0.1744033596 | 237 | 4/7/2025 |
1.0.1743862891 | 92 | 4/5/2025 |
1.0.1743392866 | 158 | 3/31/2025 |
1.0.1743388577 | 160 | 3/31/2025 |
1.0.0 | 139 | 6/23/2025 |
0.9.5515 | 2,444 | 2/6/2015 |
0.9.5349.19802 | 1,750 | 8/24/2014 |