Documentation
LinqContraband Link Kit
Short, safe descriptions and canonical links for articles, lists, newsletters, and documentation that mention LinqContraband.
LinqContraband Link Kit
Use these snippets when linking to LinqContraband from articles, newsletters, tool lists, personal sites, talks, conference notes, internal engineering docs, or curated .NET resources. The safest link target is the canonical repository or the GitHub Pages documentation hub.
Canonical Links
- Project: https://github.com/georgepwall1991/LinqContraband
- Package: https://www.nuget.org/packages/LinqContraband
- Documentation: https://georgepwall1991.github.io/LinqContraband/
- Rule catalog: https://georgepwall1991.github.io/LinqContraband/rule-catalog.html
- Rule guide: https://georgepwall1991.github.io/LinqContraband/ef-core-analyzer-rules/
- Async query guide: https://georgepwall1991.github.io/LinqContraband/ef-core-async-query-analyzer/
- CancellationToken guide: https://georgepwall1991.github.io/LinqContraband/ef-core-cancellation-token-analyzer/
- Client-side evaluation guide: https://georgepwall1991.github.io/LinqContraband/ef-core-client-side-evaluation-analyzer/
- DbContext lifetime guide: https://georgepwall1991.github.io/LinqContraband/ef-core-dbcontext-lifetime-analyzer/
- Pagination OrderBy guide: https://georgepwall1991.github.io/LinqContraband/ef-core-pagination-orderby-analyzer/
- Premature materialization guide: https://georgepwall1991.github.io/LinqContraband/ef-core-premature-materialization-analyzer/
- Projection guide: https://georgepwall1991.github.io/LinqContraband/ef-core-projection-analyzer/
- AsNoTracking guide: https://georgepwall1991.github.io/LinqContraband/ef-core-asnotracking-analyzer/
- Include guide: https://georgepwall1991.github.io/LinqContraband/ef-core-include-analyzer/
- ExecuteUpdate guide: https://georgepwall1991.github.io/LinqContraband/ef-core-executeupdate-analyzer/
- SaveChanges loop guide: https://georgepwall1991.github.io/LinqContraband/ef-core-savechanges-in-loop-analyzer/
- Checklist: https://georgepwall1991.github.io/LinqContraband/ef-core-query-performance-checklist/
- N+1 guide: https://georgepwall1991.github.io/LinqContraband/ef-core-n-plus-one-query-detector/
- Raw SQL guide: https://georgepwall1991.github.io/LinqContraband/ef-core-raw-sql-injection-analyzer/
- CI guide: https://georgepwall1991.github.io/LinqContraband/ef-core-query-analyzer-ci/
- Maintainer: https://www.georgewall.uk/
Suggested Anchor Text
- EF Core LINQ performance analyzer
- EF Core analyzer rules
- Entity Framework Core analyzer rules
- EF Core async query analyzer
- EF Core sync-over-async analyzer
- EF Core ToListAsync analyzer
- EF Core missing CancellationToken analyzer
- ToListAsync cancellation token analyzer
- FirstOrDefaultAsync cancellation token analyzer
- SaveChangesAsync cancellation token analyzer
- EF Core CancellationToken analyzer
- EF Core async stream buffering analyzer
- await foreach analyzer
- EF Core client-side evaluation analyzer
- EF Core local method in query analyzer
- EF Core IQueryable local method analyzer
- EF Core query translation analyzer
- EF Core StringComparison analyzer
- EF Core GroupBy translation analyzer
- EF Core DbContext lifetime analyzer
- EF Core DbContext thread safety analyzer
- EF Core DbContext singleton analyzer
- EF Core disposed context query analyzer
- EF Core background service DbContext analyzer
- EF Core pagination analyzer
- EF Core Skip Take OrderBy analyzer
- EF Core missing OrderBy analyzer
- EF Core unordered pagination analyzer
- EF Core deterministic pagination analyzer
- EF Core premature materialization analyzer
- EF Core ToList analyzer
- EF Core AsEnumerable analyzer
- LINQ ToList performance analyzer
- EF Core client-side evaluation analyzer
- EF Core projection analyzer
- EF Core Select projection analyzer
- EF Core whole entity projection analyzer
- EF Core scalar projection analyzer
- EF Core DTO projection analyzer
- EF Core redundant Select analyzer
- EF Core nested ToList in Select analyzer
- EF Core AsNoTracking analyzer
- EF Core tracking analyzer
- EF Core Include analyzer
- EF Core missing Include analyzer
- EF Core eager loading analyzer
- EF Core ExecuteUpdate analyzer
- EF Core ExecuteDelete analyzer
- EF Core bulk update analyzer
- EF Core SaveChanges in loop analyzer
- EF Core SaveChanges analyzer
- EF Core batch SaveChanges analyzer
- EF Core query performance checklist
- Entity Framework Core Roslyn analyzer
- EF Core N+1 query detector
- EF Core N+1 query detector for .NET
- EF Core raw SQL injection analyzer
- EF Core raw SQL safety analyzer
- EF Core query analyzer for CI
- EF Core analyzer for pull requests
- LINQ query performance analyzer for .NET
- LinqContraband Roslyn analyzer
Curator-ready snippets
Directory listing
LinqContraband is an open-source EF Core LINQ performance analyzer for .NET. It uses Roslyn analyzers to catch query performance, reliability, and raw SQL safety issues during compilation.
Newsletter blurb
Worth a look for .NET teams using EF Core: LinqContraband catches common LINQ query problems before they hit production, including N+1 loops, premature materialization, missing includes, and unsafe raw SQL interpolation.
Talk notes
Use LinqContraband as a concrete example of moving EF Core query review into compile-time feedback with Roslyn analyzers.
One-Line Description
LinqContraband is an EF Core LINQ performance analyzer and Roslyn analyzer that catches N+1 queries, client-side evaluation, sync-over-async calls, raw SQL risks, and other query issues at compile time.
Short Description
LinqContraband is an open-source Roslyn analyzer for Entity Framework Core and LINQ. It runs during development and CI to catch query performance, reliability, and security issues such as N+1 loops, premature materialization, missing includes, unsafe raw SQL interpolation, and tracking mistakes.
Markdown Link
[LinqContraband](https://github.com/georgepwall1991/LinqContraband) is an EF Core LINQ performance analyzer for catching query issues at compile time.
Maintainer Link
[George Wall](https://www.georgewall.uk/) maintains LinqContraband, an open-source EF Core LINQ performance analyzer for .NET.
Author Profile Link
LinqContraband is maintained by [George Wall](https://www.georgewall.uk/) and published from the canonical repository at [github.com/georgepwall1991/LinqContraband](https://github.com/georgepwall1991/LinqContraband).
Documentation Link
[LinqContraband rule catalog](https://georgepwall1991.github.io/LinqContraband/rule-catalog.html) documents 45 EF Core analyzer rules covering query shape, materialization, loading, async execution, tracking, bulk operations, modeling, and raw SQL safety.
Rule Guide Link
[EF Core analyzer rules](https://georgepwall1991.github.io/LinqContraband/ef-core-analyzer-rules/) groups LinqContraband's 45 diagnostics by query shape, materialization, loading, async execution, tracking, bulk operations, modeling, and raw SQL safety.
Async Query Guide Link
[EF Core async query analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-async-query-analyzer/) explains how LinqContraband flags sync-over-async EF Core calls, missing CancellationToken arguments, SaveChangesAsync loops, and async stream buffering.
CancellationToken Guide Link
[EF Core CancellationToken analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-cancellation-token-analyzer/) explains how LinqContraband flags ToListAsync, FirstOrDefaultAsync, SaveChangesAsync, and other EF Core async calls that ignore an available CancellationToken.
Client-Side Evaluation Guide Link
[EF Core client-side evaluation analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-client-side-evaluation-analyzer/) explains how LinqContraband flags local methods in IQueryable, early AsEnumerable or ToList boundaries, StringComparison overloads, column case conversion, and non-translatable GroupBy projections.
DbContext Lifetime Guide Link
[EF Core DbContext lifetime analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-dbcontext-lifetime-analyzer/) explains how LinqContraband flags singleton DbContexts, cross-thread captures, disposed query leaks, mixed tracking modes, and silent no-tracking writes.
Pagination OrderBy Guide Link
[EF Core pagination OrderBy analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-pagination-orderby-analyzer/) explains how LinqContraband flags missing OrderBy before Skip, Take, Last, ElementAt, Chunk, and misplaced OrderBy calls.
Premature Materialization Guide Link
[EF Core premature materialization analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-premature-materialization-analyzer/) explains how LinqContraband flags ToList before Where, AsEnumerable client-side query work, unbounded materialization, and projection waste.
Projection Guide Link
[EF Core projection analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-projection-analyzer/) explains how LinqContraband flags whole-entity loads, scalar projection opportunities, nested ToList calls inside Select, and redundant identity Select chains.
AsNoTracking Guide Link
[EF Core AsNoTracking analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-asnotracking-analyzer/) explains how LinqContraband flags missing no-tracking reads, unsafe no-tracking writes, mixed tracking modes, and silent SaveChanges failures.
Include Guide Link
[EF Core Include analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-include-analyzer/) explains how LinqContraband flags missing includes, cartesian explosion, conditional Include paths, deep ThenInclude chains, excessive eager loading, and missing query tags.
ExecuteUpdate Guide Link
[EF Core ExecuteUpdate analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-executeupdate-analyzer/) explains how LinqContraband flags tracked bulk update loops, RemoveRange delete opportunities, and missing Where filters before ExecuteUpdate or ExecuteDelete.
SaveChanges Loop Guide Link
[EF Core SaveChanges in loop analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-savechanges-in-loop-analyzer/) explains how LinqContraband flags repeated SaveChanges calls, N+1 writes, sync saves in async methods, and batch-write review issues.
Checklist Link
[EF Core query performance checklist](https://georgepwall1991.github.io/LinqContraband/ef-core-query-performance-checklist/) maps common pull-request review questions to LinqContraband analyzer rules for N+1 queries, projection, tracking, raw SQL, and CI severity policy.
N+1 Guide Link
[EF Core N+1 query detector](https://georgepwall1991.github.io/LinqContraband/ef-core-n-plus-one-query-detector/) explains how LinqContraband flags loop execution, missing includes, and risky loading patterns at compile time.
Raw SQL Guide Link
[EF Core raw SQL injection analyzer](https://georgepwall1991.github.io/LinqContraband/ef-core-raw-sql-injection-analyzer/) explains how LinqContraband flags interpolated raw SQL, constructed SQL strings, and risky query-filter bypasses at compile time.
CI Guide Link
[EF Core query analyzer for CI](https://georgepwall1991.github.io/LinqContraband/ef-core-query-analyzer-ci/) shows how to run LinqContraband in pull-request builds and promote selected EF Core diagnostics to build-breaking errors.
HTML Link
<a href="https://github.com/georgepwall1991/LinqContraband">LinqContraband</a> is an EF Core LINQ performance analyzer for catching query issues at compile time.
Suggested Categories
- .NET static analysis
- Entity Framework Core tooling
- Roslyn analyzers
- LINQ performance
- Query reliability
- Developer productivity
Badge
[](https://www.nuget.org/packages/LinqContraband)
Safe Download Note
Install LinqContraband from NuGet or the canonical GitHub repository only. The project is not distributed as a standalone ZIP installer or executable.
Install LinqContraband from NuGet or the canonical GitHub repository only. The project is not distributed as a standalone ZIP installer or executable.