Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
4 posts found #sqlite
What Is Dapper? The Thin Layer on Top of ADO.NET and Your First Query
Database PART 01

What Is Dapper? The Thin Layer on Top of ADO.NET and Your First Query

We meet Dapper as a set of extension methods on top of ADO.NET: what micro-ORM means, when to pick it over EF Core, setting up .NET 10 + Dapper 2.1.89 + SQLite, the first Query and a short history from 1.x to Dapper.AOT.

6 Nov 2026 11 min 13
INSERT, UPDATE, DELETE with Dapper Execute: Affected Rows and the New Id
Database PART 05

INSERT, UPDATE, DELETE with Dapper Execute: Affected Rows and the New Id

We run INSERT, UPDATE and DELETE with Execute and read the affected row count, get the new id with RETURNING and last_insert_rowid(), look at SQL Server OUTPUT and PostgreSQL RETURNING, and measure why Execute with a list is not bulk.

6 Nov 2026 10 min 9
Transactions with Dapper: BeginTransaction, Commit, Rollback and TransactionScope
Database PART 07

Transactions with Dapper: BeginTransaction, Commit, Rollback and TransactionScope

Starting from a half-written order, we set up BeginTransaction, the transaction: parameter, commit and rollback-on-dispose in Dapper, and see with real output why forgetting the parameter stays silent on SQLite, how isolation levels behave, and the async and SQLite traps of TransactionScope.

6 Nov 2026 10 min 13
Type Handlers and Custom Mapping in Dapper: Guid, DateTimeOffset and CustomPropertyTypeMap
Database PART 11

Type Handlers and Custom Mapping in Dapper: Guid, DateTimeOffset and CustomPropertyTypeMap

Why does Dapper blow up when reading Guid, DateTimeOffset and TimeSpan on SQLite? We write interpreters with SqlMapper.TypeHandler<T>, see from the source why SetValue is never called, and cover the DateOnly/TimeOnly story of 2.1.86 and column mapping with CustomPropertyTypeMap.

6 Nov 2026 11 min 13
Blog Map