blowin.SqlQueryBuilder
1.0.0
.NET Standard 2.0
dotnet add package blowin.SqlQueryBuilder --version 1.0.0
NuGet\Install-Package blowin.SqlQueryBuilder -Version 1.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="blowin.SqlQueryBuilder" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add blowin.SqlQueryBuilder --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: blowin.SqlQueryBuilder, 1.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.
// Install blowin.SqlQueryBuilder as a Cake Addin
#addin nuget:?package=blowin.SqlQueryBuilder&version=1.0.0
// Install blowin.SqlQueryBuilder as a Cake Tool
#tool nuget:?package=blowin.SqlQueryBuilder&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SqlQueryBuilder
Simple query
var builder = Query.From("People")
.Column("is_blocked")
.Column("id")
.Column("brief_name")
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine;
Assert.Equal(res, builder);
Simple query with alias
var fromTable = SqlAliasField.Of("p", "People");
var builder = Query.From(fromTable)
.Column(fromTable.WithData("is_blocked"), "block")
.Column(fromTable.WithData("id"))
.Column(fromTable.WithData("brief_name"))
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[block] = [p].[is_blocked]," + Environment.NewLine +
$"{Tab}[id] = [p].[id]," + Environment.NewLine +
$"{Tab}[brief_name] = [p].[brief_name]" + Environment.NewLine +
"FROM [People] [p]" + Environment.NewLine;
Assert.Equal(res, builder);
Where
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.Where("city_1", ConditionType.Eq, SqlWherePair.Of(SqlWhereValue.Of("LA", SqlFormatType.String), ConditionJoinerType.And))
.Where("city_2", ConditionType.NotEq, SqlWhereValue.Of("New", SqlFormatType.String))
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
"WHERE [city_1] = 'LA' AND" + Environment.NewLine +
$"{Tab}[city_2] != 'New'" + Environment.NewLine;
Assert.Equal(res, builder);
Inner join
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.Join("vwa_C_Abstract_Contractor", JoinType.Inner, "id_entity", ConditionType.Eq, "id")
.Join("vw_G_Country", JoinType.Inner, "id_country", ConditionType.Eq, "id_country_cross")
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
$"{Tab}INNER JOIN [vwa_C_Abstract_Contractor] ON [id_entity] = [id]" + Environment.NewLine +
$"{Tab}INNER JOIN [vw_G_Country] ON [id_country] = [id_country_cross]" + Environment.NewLine;
Assert.Equal(res, builder);
Group by
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.OrderBy("brief_name", "full_name")
.OrderBy(OrderByDirection.Desc)
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
"ORDER BY" + Environment.NewLine +
$"{Tab}[brief_name]," + Environment.NewLine +
$"{Tab}[full_name] DESC" + Environment.NewLine;
Assert.Equal(res, builder);
Order by
var builder = Query.From(SqlAliasField.Of("People"))
.Column("is_blocked", "id", "brief_name")
.Where("is_blocked", ConditionType.Eq, "1")
.GroupBy("my_field_1", "my_field_2")
.ToString();
var res = "SELECT" + Environment.NewLine +
$"{Tab}[is_blocked]," + Environment.NewLine +
$"{Tab}[id]," + Environment.NewLine +
$"{Tab}[brief_name]" + Environment.NewLine +
"FROM [People]" + Environment.NewLine +
"WHERE [is_blocked] = 1" + Environment.NewLine +
"GROUP BY" + Environment.NewLine +
$"{Tab}[my_field_1]," + Environment.NewLine +
$"{Tab}[my_field_2]" + Environment.NewLine;
Assert.Equal(res, builder.ToString());
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- FlexEnum (>= 1.0.1)
- System.Memory (>= 4.5.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 439 | 6/13/2019 |