Build1 distinct publisher3 min readPublished
A dev.to field guide names ten EF Core mistakes. The ranking matters more than the list: tracking, projection and page caps attack costs that scale with rows, which is why compiled queries wait.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Order the first three fixes by what multiplies their cost. Change tracking, in the guide's own description, spends memory and CPU on change detection for every entity a read path materializes [7]. Loading whole rows when two or three columns would do inflates payload and materialization cost [8]. Both of those are charges per row. Pagination is the only one of the three that decides how many rows there are to charge for [9]. A checklist ordering and an arithmetic ordering are therefore different documents: a page cap shrinks the multiplier, AsNoTracking and projection shrink the per-row coefficient, and shrinking the coefficient on an unbounded set only makes the accidental load test [9] cheaper by the unit. The guide's own rule, filter and sort and paginate before materialization [10], says the same thing in the language of query composition rather than cost.
Compiled queries sit eighth of ten in both orderings the article publishes [14]. The supplied text breaks off mid-sentence inside the client-side evaluation section [17], so whatever it credits compiled queries with saving is not on the page I have; what is on the page, described as growing with data volume, is tracking work, materialization work and row count [7][8][9]. A saving that is fixed per invocation cannot outrun one that scales with rows, whatever its absolute size, and that is the whole case for the sequence.
Instrument before you touch code is the right instruction, and the guide gives the wiring: logging on the DbContext registration, with sensitive data logging fenced to development [5]. The triage table is thinner than it looks. Many SELECTs per request points at N+1, a huge row count for a small parent set at cartesian explosion, heavy tracking snapshots on a read endpoint at missing AsNoTracking, and a list endpoint with no LIMIT at missing pagination [6]. That is four of the ten items [16]. The remaining six are found by reading code and schema, not by watching a log stream, which is worth knowing before someone budgets an afternoon of log reading against all ten.
Nothing here is quantified. The excerpt carries no P95 before and after, no row counts, no materialization timings [17], so the ordering is a hypothesis about your workload rather than a measurement of it. The one testable idea the guide does supply is its definition: a data access pattern that returns correct results in development, passes tests, and degrades under real data volume or concurrency [4]. Read as a diagnostic, that points at the seed data rather than the query. If the dataset in your test environment had production cardinality, four of these ten mistakes would fail a test instead of a customer.
Ranked by verification strength, evidence, and original report placement.
The guide says tracking every entity in read paths increases memory and CPU for change detection, recommends defaulting to no tracking on query endpoints, and shows write paths opting back in explicitly with AsTracking.
The guide includes sections titled "Decision matrix: what to fix first" and "What EF Core 10 improves", along with a troubleshooting checklist and a production baseline checklist.
A dev.to field guide on EF Core states that when an API is fast with seed data but slows down in production, EF Core is rarely the root cause; it is usually the amplifier.
The guide says most teams do not have one catastrophic query; they have many small query-shape decisions that compound into high P95 latency, lock pressure and unnecessary database scale-up.
The guide's summary list of ten mistakes runs: N+1 queries; loading full entities instead of projections; missing AsNoTracking on read paths; no pagination on list endpoints; client-side evaluation patterns; tracking read-only graphs; cartesian explosion from multiple collection Includes; no compiled queries on hot paths; missing indexes on hot filters and joins; SaveChanges inside loops.
The guide defines an EF Core performance mistake as any data access pattern that returns correct results in development, passes tests, but degrades badly under real data volume or concurrency, adding that correctness is not enough and query shape is architecture.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single practitioner guide, code samples but zero measurements
Every claim traces to one dev.to article. Claims about what the guide says are directly verifiable in the supplied body and the code samples use real EF Core APIs (AsNoTracking, AsNoTrackingWithIdentityResolution, AsSplitQuery, EF.CompileAsyncQuery, HasIndex), which supports the mechanisms described. But no benchmark, timing, row count or query plan appears, the text truncates before the decision matrix and checklists that would justify the prescribed fix order, and the guide contradicts itself on the ordering of mistakes two and three. That caps evidence well below the midpoint.
No adoption evidence in supplied material
The cluster contains no release, deployment, benchmark, usage disclosure, pricing or licensing event. The author's assertion of patterns 'I keep seeing in production .NET APIs' is an unquantified personal observation, not an adoption measurement, and no organization, repository or version rollout is named.
Confident prescriptive ordering, no measurement behind it
The framing is stronger than the support: mistakes that 'ship to production', fixes that 'move the needle first', and a definite ten-item priority order including compiled queries at position eight. None of it is measured, the diagnostic guidance covers only four of the ten items, and the guide's own two orderings disagree at positions two and three. The overstatement is moderate rather than severe because the individual recommendations are mainstream, low-risk EF Core practice and the guide hedges honestly in places ('measure both modes on your dataset', apply compiled queries selectively).
Self-published practitioner content; reputational incentive only
The single source is a personal dev.to post with no product, vendor, sponsor, pricing or licensing interest visible anywhere in the supplied text. The observable incentive is the ordinary developer-platform one - listicle framing ('10 ... That Ship to Production'), a structured field-guide format and authorial credibility - which is enough to explain the confident prescriptive tone but implies no commercial stake in EF Core, Npgsql or any tool named.
High confidence on what was said, low on outcomes
Confidence in the descriptive claims is high because they are directly readable in the one supplied body. Confidence in the substantive assertion the story rests on - that this fix order is the right one - is low: single source, no measurements, internally inconsistent ordering, six of ten mistakes without diagnostics, and a body truncated before the decision matrix, EF Core 10 notes and both checklists. One ledger claim about where the truncation falls is also contradicted by the supplied text, which is a further reason to hold the aggregate near the middle.
build
Your "Index Only Scan" Did 2,847 Heap Fetches: Covering Indexes Are a Vacuum Problem1 distinct publisher
build
One non-ASCII letter broke four toolchains: path checks belong in CI, not folklore1 distinct publisher
build
Native AOT buys a quarter-second of startup for 30MB and your reflection1 distinct publisher
build
Three manual interventions in a month, and every guard was working as designed1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 26, 2026