LINQPad Premium v9.10.20
Download LINQPad Premium v9.10.20
The .NET Programmer’s Playground:
Instantly test any C#/F#/VB snippet or program
Query databases in LINQ (or SQL) — SQL/Azure, Oracle, SQLite, Postgres & MySQL
Enjoy rich output formatting, autocompletion with AI and integrated debugging
Script and automate in your favorite .NET language, with all the benefits of a REPL
Interoperate with BenchmarkDotNet, xUnit, Rx, MSAL, Excel and more
Super lightweight — small and fast, with xcopy option
Standard edition free with no expiry
LINQPad is not just for LINQ queries, but any C#/F#/VB expression, statement block or program. Put an end to those hundreds of Visual Studio Console projects cluttering your source folder and join the revolution of LINQPad scripters and incremental developers.
Reference your own assemblies and NuGet packages. Prototype your ideas in LINQPad and then paste working code into Visual Studio. Or call your scripts directly from the command-line.
Want to test a variation of your script? Clone your query in a single keystroke!
Experience LINQPad’s rich output formatting, optional debugger and autocompletion, and the magic of dynamic development and instant feedback!
With LINQPad, you can interactively query databases directly in LINQ (as well as SQL). The big win with LINQ is having association properties automatically generated for all relationships (inferred from foreign key constraints), so you can access related rows without joining! LINQPad uses a custom high-performance scaffolding engine behind the scenes, and includes drivers for SQL Server, SQL Azure, Oracle, SQLite, PostgreSQL and MySQL.
When dumped, association properties appear as lazy hyperlinks that can be expanded just by clicking on them. You can walk your entire database interactively!
LINQPad’s Dump method is famous for its capacity to eat almost anything!
Tuned with numerous heuristics, it intelligently walks object graphs for the best possible output. It even turns lazy objects into hyperlinks and asynchronous values into placeholders whose content materializes in the future!
Images and bitmaps render as images and bitmaps, and types from Reactive Extensions and Dataflow fully animate.
Dump any WPF or Windows Forms object and it will actually render.
Call the .Chart extension method to output data as a chart, using LINQPad's inbuilt charting engine.
And when you need a traditional data grid or debugger watch window, it’s there, too.
With its support for advanced C# features such as async / await and unsafe, LINQPad is capable of serious rapid coding work.
Such as writing a neural network from scratch!
Import other queries or .cs files with the #load directive.
Reference project assemblies from your Visual Studio solution, and use LINQPad as an interactive test harness. Or use LINQPad to provide instant entry points into any part of your solution.
Use LINQPad for build scripts and to automate cloud management tasks. LINQPad includes an integrated password manager for securely storing API keys, and a MSAL/OAuth frontend for multifactor authentication that preserves tokens across executions.
Step through your code with a lightweight debugger, and move around quickly with symbol navigation, outlining and bookmarking.
LINQPad is also a great way to learn C#: it comes with all 1300 examples from the book, C# 12 in a Nutshell, as well as interactive samples from Jon Skeet's C# in Depth.
A .NET Swiss Army Knife
Ever needed to benchmark your code? Now you can do so with a single keypress! LINQPad uses the industrial-grade BenchmarkDotNet for accurate results, which it presents via a customizable graphic real-time visualizer. No more writing boilerplate setup code, and no more digging through text-based logs!
Need to write a regular expression? Press Ctrl+Shift+F1 and an interactive RegEx Evaluator will appear! This is actually implemented entirely as a LINQPad query that uses LINQPad's HTML controls. You can make changes to this query, or use it as as template for writing your own interactive queries.
Need to generate Excel files? LINQPad includes a custom high-speed Excel export engine that generates native .xlsx files with AutoFilter and Tables — in a single line of code. There are also options for creating multi-sheet workbooks and you can even populate a spreadsheet cell-by-cell:
LINQPad is Easy to Learn
LINQPad comes with an integrated tutorial/reference, comprising interactive sample queries. Browse through the tree or press Ctrl+F1 to search — you'll find a sample that demonstrates just about every feature and application of LINQPad.
Changelog
Note to Claude Code Users
LINQPad 9.10.17 addresses a critical breaking change in Claude Code 2.1.228.
Older versions of LINQPad will no longer work reliably with Claude Code.
Note to Copilot Users
Due to a breaking change in GitHub Copilot 1.0.71, you may need to sign in again on next use.
New Features: General
- You can now add additional folders to the My Scripts TreeView. Additional folders are included in searches and optionally in
Util.GetMyScripts(), and can easily be hidden (or swapped with the primary My Scripts folder). - LINQPad's LINQ-to-SQL and EF Core drivers now support SQL Server 2025's JSON and VECTOR column types. To invoke SQL functions on these types (such as
JsonContainsorVectorDistance), use the static methods on theSqlMethodsclass (LINQ-to-SQL) or theEF.Functionsclass (EF Core 11+). - The editor now includes selection-based C# code refactorings, such as Extract Method and Introduce Local Variable. To activate, select a portion of code before pressing Alt+Enter or Command-Enter.
- The following additional refactorings are now supported: Change Signature, Generate Overrides and Extract Interface. Press Alt+Enter or Command-Enter to activate.
- LINQPad now performs Mark-of-the-Web screening, UNC path screening and optional local code path screening when opening files. You can also now optionally enforce source-mapping rules for NuGet packages. Go to Settings > Security to configure.
- The Claude Code and Copilot providers now know how to interact with web sites with a headed or headless browser.
- The Schema Explorer tree now includes a search box.
- There's now a Clear Results option on the dropdown menu in the output toolbar (Ctrl+K,E or Command-K,E).
- You can now create connections that use the EF Core 11 preview.
- The SQLite EF Core dialog now has a Create Database button.
- With SQLite connections, there's now an option to favor
System.Doublewhen mapping NUMBER/NUMERIC/DECIMAL columns. - Data grids now refresh when the underling collection changes.
- There's now an auto-edit option for editable grids.
- Autocompletion now recognizes attribute parameters.
- Hardware graphics acceleration is now supported over RDP connections.
New Features: LINQ-to-SQL
- The LINQ-to-SQL driver now supports the following additional query operators:
- Order / OrderDescending
- Last / LastOrDefault / Reverse (on an ordered sequence)
- LeftJoin / RightJoin (translated to LEFT / RIGHT OUTER JOIN)
- FullJoin (in .NET 11)
- MinBy / MaxBy
- DistinctBy / UnionBy
- ExceptBy / IntersectBy
- CountBy
- ElementAt / ElementAtOrDefault
- Shuffle (translated to ORDER BY NEWID())
string.Joinover a grouping or sub-collection is now translated to SQL Server'sSTRING_AGGfunction, e.g.Products.GroupBy(p => p.Category).Select(g => string.Join(", ", g.Select(p => p.Name))).- You can now perform set-based updates and deletes that execute in a single round-trip, without loading entities or invoking the change tracker, via the new
ExecuteUpdateandExecuteDeleteextension methods:Products.Where (p => p.Discontinued).ExecuteDelete(); Products.Where (p => p.Stock == 0) .ExecuteUpdate (s => s.SetProperty (p => p.Price, p => p.Price * 0.9m)); - The new
TagWithextension method inserts a comment into the generated SQL, making the LINQ and SQL easier to correlate.TagWithCallSiteinserts the calling method and line number. - (As mentioned previously) JSON and Vector column types are now mapped, and the
SqlMethodsclass includes static functions to operate on these types. - A bug affecting the use of
GroupJoinon tables/views without a primary key has been fixed.
Fixes
- Quitting via the dock context menu or OS restart on macOS is now reliable in preserving shelved scripts.
- Real numbers in non-English cultures now show correctly in 'total' columns when collections are dumped.
- SQLite databases with very large tables no longer cause schema resolution timeouts.