Sequel 3.1.4
dotnet add package Sequel --version 3.1.4
NuGet\Install-Package Sequel -Version 3.1.4
<PackageReference Include="Sequel" Version="3.1.4" />
paket add Sequel --version 3.1.4
#r "nuget: Sequel, 3.1.4"
// Install Sequel as a Cake Addin #addin nuget:?package=Sequel&version=3.1.4 // Install Sequel as a Cake Tool #tool nuget:?package=Sequel&version=3.1.4
Sequel
An efficient SQL builder with an interface that emulates writing actual SQL queries.
Getting Started
SELECT
var sqlBuilder = new SqlBuilder()
.Select("Id", "Salary")
.From("dbo.Test");
var sql = sqlBuilder.ToSql(); // .ToString() also works
/*
SELECT Id, Salary FROM dbo.Test
*/
// SELECT with INNER & LEFT JOIN
var sqlBuilder = new SqlBuilder()
.Select("*")
.From("dbo.Test t")
.Join("dbo.Employee e on e.Id = t.EmployeeId")
.LeftJoin("dbo.Manager m on m.Id = e.ManagerId");
var sql = sqlBuilder.ToSql();
/*
SELECT * FROM dbo.Test t INNER JOIN dbo.Employee e on e.Id = t.EmployeeId LEFT JOIN dbo.Manager m on m.Id = e.ManagerId
*/
INSERT
var sqlBuilder = new SqlBuilder()
.Insert("dbo.Test")
.Columns("Name", "Salary")
.Values("'John'", "50")
.Values("'Jane'", "100");
var sql = sqlBuilder.ToSql(); // .ToString() also works
/*
INSERT INTO dbo.Test (Name, Salary) VALUES ('John', 50), ('Jane', 100)
*/
UPDATE
var sqlBuilder = new SqlBuilder()
.Update("dbo.Test")
.Set("Salary = 100", "ManagerId = 2")
.Where("EmployeeId = 1");
var sql = sqlBuilder.ToSql(); // .ToString() also works
/*
UPDATE dbo.Test SET Salary = 100, ManagerId = 2 WHERE EmployeeId = 1
*/
DELETE
var sqlBuilder = new SqlBuilder()
.Delete()
.From("dbo.Test")
.Where("EmployeeId = 1");
var sql = sqlBuilder.ToSql(); // .ToString() also works
/*
DELETE FROM dbo.Test WHERE EmployeeId = 1
*/
Injecting custom SQL
You are granted pre- & post-hooks into the final SQL string literaly, for the purpose of injecting custom SQL.
The pre-hook is useful in the case of CTE's or inline declarations.
var sqlBuilder = new SqlBuilder(pre: "WITH cte AS (SELECT 1) ")
.Select("*")
.From("cte");
var sql = sqlBuilder.ToSql();
/*
WITH cte AS (SELECT 1) SELECT * FROM cte"
*/
The post-hook is useful for situations like obtaining the last inserted row identifier.
var sqlBuilder = new SqlBuilder(post: "; SELECT last_insert_rowid();")
.Insert("dbo.Test")
.Into("Name", "Salary")
.Value("'Pim'", "50");
var sql = sqlBuilder.ToSql();
/*
INSERT INTO dbo.Test (Name, Salary) VALUES ('Pim', 50); SELECT last_insert_rowid();
*/
An example using Dapper
using(var conn = new SqlConnection("your connection string")
{
var sqlBuilder = new SqlBuilder()
.Select("Id", "Salary")
.From("dbo.Test")
.Where("Id", "@Id");
var sql = sqlBuilder.ToSql(); // .ToString() also works
/*
SELECT Id, Salary FROM dbo.Test WHERE Id = @Id
*/
var result = conn.Query(sql, new { Id = 1 });
}
Find a bug?
There's an issue for that.
License
Built with ♥ by NHLPA Engineering in Toronto, ON. Licensed under MIT.
Product | Versions 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Sequel:
Package | Downloads |
---|---|
LunchPail.Repository
A .NET Standard compliant abstract repository for use with LunchPail. |
|
NBean
Hybrid-ORM for .Net |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.1.4 | 1,691 | 9/16/2022 |
3.1.3 | 419 | 9/16/2022 |
3.1.2 | 396 | 9/16/2022 |
3.1.1 | 468 | 7/31/2021 |
3.1.0 | 493 | 12/4/2020 |
3.0.2 | 421 | 11/30/2020 |
3.0.1 | 475 | 11/15/2020 |
3.0.0 | 367 | 11/14/2020 |
2.0.0 | 1,361 | 10/28/2019 |
1.1.5 | 789 | 3/20/2019 |
1.1.4 | 619 | 3/5/2019 |
1.1.3 | 1,097 | 8/31/2018 |
1.1.2 | 786 | 8/24/2018 |
1.1.1 | 773 | 8/24/2018 |
1.1.0 | 762 | 8/23/2018 |
1.0.6 | 776 | 8/23/2018 |
1.0.5 | 2,303 | 8/21/2018 |
1.0.4 | 1,048 | 7/26/2018 |
1.0.3 | 800 | 7/25/2018 |
1.0.2 | 894 | 5/5/2018 |
1.0.1 | 904 | 5/5/2018 |
1.0.0 | 821 | 5/2/2018 |