Interactive REPL
db.Products.Take(5).ToList(); — history, Tab completion, :tables, :describe, :plan.
All EF roads lead to SQL.
Entity Framework translates LINQ — it does not remove the database from your job.
My EF Vibe (efvibe) runs against your real DbContext and shows
translated and executed SQL, row counts, and query plans — so you are never guessing what EF actually sent.
There is no way around it: every EF Core query becomes SQL. An ORM buys you mapping and compile-time LINQ — not permission to stop caring about execution plans, round trips, or translated shape.
Teams discover too late that innocent-looking LINQ became N+1 calls, client evaluation, or a table scan. Production does not forgive “I thought EF would optimize that.”
My EF Vibe is the shortest path from the LINQ in your repo to the SQL on the wire — in a REPL, beside your editor, and in CI before merge.
ToQueryString() and executed commands per snippet — not after a full debug session.
efvibe scan flags N+1 and performance smells before they ship.
:plan and deep scan EXPLAIN on the same SQL EF would run in production.
For years, “what SQL did EF send?” meant a scavenger hunt. It works — if you have twenty minutes and excellent scroll speed.
efvibeappsettings (or remember it was already on, but too noisy).info lines and parameter blobs.Seven context switches and a prayer. Per question.
db.… in the REPL).Same database truth. No app startup. No log archaeology. No copy-paste relay race.
Imagine how much time your team could have saved if every “what’s the SQL?” moment took seconds instead of
a mini sprint. That is what efvibe is for.
LINQ is pleasant to write and painful to debug when SQL stays invisible. These are the gaps
efvibe closes.
See executed and translated SQL per snippet, with timing and row counts — in the terminal or beside your code in VS Code.
Point -p at your EF project and -s at the startup project for user secrets and appsettings — the usual persistence + API split.
:scan lite and :scan deep walk your EF sources, flag N+1 and client-eval patterns, and show EXPLAIN plans on deep scan.
Headless efvibe scan with JSON output and --fail-on severity — wire it into PR pipelines (see CI/CD guide).
One engine — terminal REPL, efvibe serve daemon, VS Code extension, and CI scan.
db.Products.Take(5).ToList(); — history, Tab completion, :tables, :describe, :plan.
efvibe serve for fast Run Selection; result panel with SQL and Run Plan; Scan Review carousel for findings. Shift+Alt+E in C#.
Lite heuristics plus deep scan with ToQueryString() and live EXPLAIN per call site.
Scan JSON, dismissals, notes, and CSV/JSON exports under ~/.efvibe/<Project>/<DbContext>/.