-
Notifications
You must be signed in to change notification settings - Fork 20
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-SQL
incompetence, 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
TransactionScope
instance (created viaTinyORM
.DbContext
.CreateTransactionScope()
factory).
-
- Transparent connection management. One less thing to worry about and screw up. Never think about connections again.
-
Task
-basedasync
API (ie. the API). All calls are buffered (focus on safety and fast connection release). -
POCOs or
anonymous
objects are fine. No inheritance, interface, or attribute requirements. - Returns
dynamic
entities which can be consumed directly, or projected to statically-typed objects (fast!).- Either strict (perfect-match) or relaxed (best-effort) projection of
dynamic
to 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
,NVARCHAR
support forstring
parameters.
-
- Single or multiple Result Sets.
-
Snapshots provide change-tracking, with
UPDATE
T-SQL
generation for partial updates. - Intelligent batched *bulk* command sequences via
QueryBatch
(not just forINSERT
- for allCREATE/UPDATE/DELETE/MERGE
commands). -
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
, andUPSERT
T-SQL
generation. -
SequentialGuid
generator for fragmentation-free, unique, unguessable, code-generated clustereduniqueidentifier
indexes. - c# 10.0 in
safe
mode. Compiledany cpu
for .NET 4.5.2+. - Tiny codebase. Tiny ~45k
.dll
. -
TinyORM
on 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