Pinned Tweet
🚀 OrmLite’s biggest release EVER: ServiceStack v10.4!
We emptied the wishlist:
🛡️ Multitenancy + safe SQL
🔍 Vector + full-text search
⚡ Compiled queries + bulk upserts
🌳 Recursive CTEs + window functions
🧬 Schema diff
…and so MUCH more!
🎬 Meet the new & improved OrmLite!
Store and query JSON data with typed C# 🧩
📹 New video:
OrmLite maps classes and lists to JSON columns - and lets you query inside them across SQLite, PostgreSQL, SQL Server & MySQL.
No extra tables. No raw SQL.
Your JSON query can look like this:
x.Address.City == "London" && x.Tags.Contains("vip")
OrmLite translates typed C# into native JSON queries for SQLite, PostgreSQL, SQL Server & MySQL.
Explore the examples →
docs.servicestack.net/ormlit…
Advanced SQL doesn’t have to mean raw SQL strings 🧵
See how OrmLite brings Recursive CTEs, Window Functions, Top N Per Group & Temporal Tables to typed C#
Explore the OrmLite APIs featured in the video:
📘 Recursive Queries: docs.servicestack.net/ormlit…
📘 Window Functions: docs.servicestack.net/ormlit…
📘 System-Versioned Tables: docs.servicestack.net/ormlit…
Your query is fast. What about everything around it?
New #OrmLite video:
• Batch 1,000 inserts up to 8.5× faster—same code
• Compile queries: generate SQL once
• SeekAfter: page 1,000 in 0.23 ms vs 33.95 ms
Benchmarks, SQL, and trade-offs 👇
Learn more:
📘 Batched Writes: docs.servicestack.net/ormlit… 📘 Compiled Queries: docs.servicestack.net/ormlit… 📘 Keyset Pagination with SeekAfter: docs.servicestack.net/ormlit…
ServiceStack v10.4.2 fixes a path traversal vulnerability in FilesUploadFeature and FileSystemVirtualFiles. If your app uses them, please upgrade.
Our automated security scans also identified vulnerable transitive deps - see release notes for mitigation:
docs.servicestack.net/releas…
💸 Two requests deposit $10. Both succeed. One deposit disappears.
Your C# code looks correct. Your database balance isn’t. 😬
🎬 New OrmLite video: prevent lost updates with row locks, plus SKIP LOCKED queues, RETURNING & UPSERTS.
📚 Ready to try it? The docs cover the APIs, C# examples and database support:
🔒 Row locking & SKIP LOCKED
docs.servicestack.net/ormlit…
↩️ Returning updated & deleted rows
docs.servicestack.net/ormlit…
Try it in your own .NET App 👇
The OrmLite Schema Diff docs cover comparing models with tables, generating migrations for review, and logging schema differences at startup.
docs.servicestack.net/ormlit…
OrmLite gives you a huge surface of typed APIs with LINQ expressions. But when you need custom SQL, you don't have to give up safety.
Sql.Fmt lets you write C# interpolated strings, and every {value} is sent as a db param:
Sql.Fmt($"Author = {author}") → WHERE Author = @p0
Sql.Fmt also sends enums, numbers and dates as typed params, expands lists into IN lists, and works with every raw SQL API, sync or async.
📘 Sql.Fmt: docs.servicestack.net/ormlit…
📘 OrderBySafe: docs.servicestack.net/ormlit…
📘 SQL injection: docs.servicestack.net/ormlit…
You don’t need a new backend to start adding AI to your .NET App.
Opt in an existing read-only API. Keep your existing permissions and validation.
Let your team explore what they can build ✨
Code and walkthrough 👇
servicestack.net/posts/ai-ch…
🎥 New Multitenancy video
In a multi-tenant app, one query that forgets `WHERE TenantId` returns all customer's data, without error.
OrmLite's connection filters let you declare the tenant rule once, on the connection, and every typed query, update, delete and join follows it
Follow-up docs for the video 👇
📖 Multitenancy: How to confine a connection to a tenant docs.servicestack.net/ormlit…
🏗️ Guide: How the Next SaaS template applies it, with the code and tests for each rule docs.servicestack.net/ormlit…
That was the overview. Now see everything new in OrmLite’s biggest release 👇
Async streaming, keyset pagination, read replicas, automatic retries, query plans, slow query profiling… the list keeps going.
Explore ServiceStack v10.4:
docs.servicestack.net/releas…






