Welcome to the Trysil Blog
Welcome to the Trysil Blog
This is the first post of the Trysil Blog — the place where I’ll share tutorials, deep dives, release notes, and design decisions behind Trysil, an ORM framework for Delphi.
What you’ll find here
- Tutorials — step-by-step walkthroughs, from the first entity mapping to multi-tenant REST APIs built on top of
Trysil.Http. - Deep dives — how features work under the hood: the identity map, JOIN queries, change tracking, soft delete, lazy loading, and more.
- Release notes — what’s new, what changed, and what’s on the roadmap.
- Case studies — real-world patterns, lessons learned, and Delphi-specific design choices (and why some “obvious” alternatives don’t work in this language).
A small example
[TTable('Customers')]
TCustomer = class
strict private
[TPrimaryKey]
[TColumn('ID')]
FID: TTPrimaryKey;
[TColumn('CompanyName')]
FCompanyName: String;
[TVersionColumn]
[TColumn('VersionID')]
FVersionID: TTVersion;
public
property ID: TTPrimaryKey read FID;
property CompanyName: String read FCompanyName write FCompanyName;
property VersionID: TTVersion read FVersionID;
end;
var
LCustomers: TTList<TCustomer>;
LCustomer: TCustomer;
begin
LCustomers := TTList<TCustomer>.Create;
try
FContext.SelectAll<TCustomer>(LCustomers);
for LCustomer in LCustomers do
Writeln(LCustomer.CompanyName);
finally
LCustomers.Free;
end;
end;
Stay tuned — more coming soon.
This post is licensed under CC BY 4.0 by the author.