Covers 12 PostgreSQL tuning techniques with EXPLAIN ANALYZE benchmarks, including adding a customer_id index that cuts a 240ms query, avoiding SELECT *, reordering JOINs so the smaller table filters first, using LIMIT, partial indexes like idx_completed_orders, and choosing efficient data types. ...
Explains why some EF Core LINQ queries fail to translate to SQL, using a Perfume model backed by PostgreSQL and Npgsql to show ToQueryString() output, how StartsWith becomes a SQL LIKE clause, and cases involving custom methods or reflection that force client-side evaluation instead. ...
Shows how to map a read-only PostgreSQL view named vw_product_summary into a ProductSummary entity in EF Core using ToView() and HasNoKey(), keeping the mapped view separate from the Product table so schema migrations don't break when the view definition changes. ...
Benchmarks .NET exception handling with BenchmarkDotNet across 100,000 iterations, comparing a no-exception baseline, a try/catch path throwing InvalidOperationException, and a OneOf<T> discriminated-union return type to quantify the CLR's stack-unwinding and heap-allocation overhead. ...
Refactors a fat ASP.NET Core OrdersController that enforces a five-orders-per-day rule directly inside CreateOrder into a testable IOrderService/OrderService pair, showing how moving validation like user-activity checks and order limits out of the controller keeps it thin and SRP-compliant. ...
Builds an IMovieRepository/MovieRepository/MovieService layer around EF Core's DbContext with a GetTopRatedAsync(8.0) query, then argues the abstraction pays off only for complex domains like banking or insurance, while simple CRUD apps are often better served by DbContext directly. ...
Benchmarks IEnumerable against List, arrays, LINQ chains, and yield-based sequences in C# using BenchmarkDotNet with collection sizes of 1,000 and 100,000, showing how deferred execution and repeated enumeration can make IEnumerable up to 7x slower than a materialized List in hot paths. ...
Compares EF Core's Table-per-Hierarchy, Table-per-Type, and Table-per-Concrete-Type inheritance strategies using an abstract Employee base class with Contractor, FullTimeEmployee, and PartTimeEmployee subtypes, configuring TPH with HasDiscriminator<EmployeeTypeEnum> to store every row in one table. ...
Uses a PostgreSQL-backed EF Core project with Player, Team, and PlayerTeam entities to show how primitive obsession with plain int IDs lets a TeamId slip in where a PlayerId is expected, then wraps each ID in a strongly-typed struct so mixing them up becomes a compile-time error. ...