-
Notifications
You must be signed in to change notification settings - Fork 18
Home
sdrapkin edited this page Jan 17, 2022
·
23 revisions

TinyORM by Stan Drapkin [sdrapkin at sdprime dot com]
- Focused on SQL Server (any
SqlClient-based db engine). - Intuitive, tiny, simple API. This is usually the hardest part for libraries to get right.
-
Does not obscure or reinvent
T-SQL. If you prefer APIs that hideT-SQLincompetence, look elsewhere. -
Very fast. As fast as competition (
Dapper,OrmLite,LLBLGen,EF Core, etc. benchmarks). -
Seamlessly transactional and safe. Transactions are not merely supported - they are the default.
-
XACT_ABORT=ON(automatic transaction rollback on runtime T-SQL errors). - Custom transaction scopes are declared via standard
TransactionScopeinstance (created viaTinyORM.DbContext.CreateTransactionScope()factory).
-
- Transparent connection management. One less thing to worry about and screw up. Never think about connections again.
-
Task-basedasyncAPI (ie. the API). All calls are buffered (focus on safety and fast connection release). -
POCOs or
anonymousobjects are fine. No inheritance, interface, or attribute requirements. - Returns
dynamicentities which can be consumed directly, or projected to statically-typed objects (fast!).- Either strict (perfect-match) or relaxed (best-effort) projection of
dynamicto statically-typed objects.
- Either strict (perfect-match) or relaxed (best-effort) projection of
- Full parameterization, with parameter list expansion (ex.
WHERE Id IN (@IdList)). This also helps prevent SQL injection.-
CHAR,VARCHAR,NCHAR,NVARCHARsupport forstringparameters.
-
- Single or multiple Result Sets.
-
Snapshots provide change-tracking, with
UPDATET-SQLgeneration for partial updates. - Intelligent batched *bulk* command sequences via
QueryBatch(not just forINSERT- for allCREATE/UPDATE/DELETE/MERGEcommands). -
Streaming data-out support (ex. streaming out
BLOBs/files). -
Auditing
- Caller identity tracking (which user made the call?).
- Callsite tracking (which source code filename, method, and line# made the call?).
- Helpers for
CREATE,UPDATE,DELETE, andUPSERTT-SQLgeneration. -
SequentialGuidgenerator for fragmentation-free, unique, unguessable, code-generated clustereduniqueidentifierindexes. - c# 10.0 in
safemode. Compiledany cpufor .NET 4.5.2+. - Tiny codebase. Tiny ~45k
.dll. -
TinyORMon NuGet (Install-Package TinyORM). - MS-PL (Microsoft Public) license. If MS-PL does not suit you, contact me.
If you are serious about SQL Server, give TinyORM a try (even if you're a Dapper fan).
Copyright (c) 2016-2022 Stan Drapkin