SqlLinq 2.0.0

dotnet add package SqlLinq --version 2.0.0
                    
NuGet\Install-Package SqlLinq -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SqlLinq" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SqlLinq" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="SqlLinq" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SqlLinq --version 2.0.0
                    
#r "nuget: SqlLinq, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SqlLinq@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SqlLinq&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=SqlLinq&version=2.0.0
                    
Install as a Cake Tool

CI NuGet

SqlLinq

Dynamic .NET SQL queries

This project started as an experiment that allowed me to write dynamic SQL-like inline queries so I could explore the nature of my collection of MP3 files. This original project is on CodeProject: http://www.codeproject.com/Articles/28163/SqlLinq-Taking-LINQ-to-SQL-in-the-Other-Direction.

That original code was refined to being a basic implementation of SQL select statements. That code was also published and described on CodeProject: http://www.codeproject.com/Articles/43678/Dynamically-evaluated-SQL-LINQ-queries

It isn't a replacement for Linq but it can come in handy when the data model being queried or the exact structure of one's query results aren't known at compile time.

Version 2.0 updates SqlLinq for .NET Standard, and adds extensibility points to add custom SQL functions and syntax.

Thanks to dkackman for creating SqlLinq and for letting it carry on here.

Quick start

dotnet add package SqlLinq
using SqlLinq;

// Query() can select over typed objects, dictionaries, or dynamic objects
// queries support WHERE, GROUP BY, HAVING, ORDER BY, aggregates, and joins.
// "this" is the source collection.
var adults = people.Query("SELECT * FROM this WHERE Age >= 18 ORDER BY Name");

Joins

// "that" is the joined collection.
var members = people.Query<Person, Family, IDictionary<string, object>>(
    "SELECT Name, that.Name AS Family FROM this INNER JOIN that ON this.Address = that.Address",
    families);
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on SqlLinq:

Package Downloads
SqlLinq.TimeSeries

Time series queries for SqlLinq.

SqlLinq.Units

Unit conversion in SqlLinq queries, using UnitsNet.Metadata.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 61 11/6/2026
2.0.0-rc.1 51 11/6/2026
1.0.2 4,740 5/11/2014