How to Make Database Queries Easier to Debug

ORM query behaving differently than expected?

Look at the generated SQL.

In EF Core, you can inspect a query with:

var query = context.Orders
    .Where(x => x.Status == OrderStatus.Completed)
    .OrderByDescending(x => x.CreatedAt);

var sql = query.ToQueryString();
How to Make Database Queries Easier to Debug

Generated SQL helps you see:

  • Which columns are selected
  • Which joins were generated
  • Where filters are applied
  • How ordering works
  • Whether the query matches your assumptions

LINQ is convenient, but the database still executes SQL.

When a database query is slow or surprising, looking at the database query is often useful.