SqlLinqer 2.1.0
dotnet add package SqlLinqer --version 2.1.0
NuGet\Install-Package SqlLinqer -Version 2.1.0
<PackageReference Include="SqlLinqer" Version="2.1.0" />
<PackageVersion Include="SqlLinqer" Version="2.1.0" />
<PackageReference Include="SqlLinqer" />
paket add SqlLinqer --version 2.1.0
#r "nuget: SqlLinqer, 2.1.0"
#:package SqlLinqer@2.1.0
#addin nuget:?package=SqlLinqer&version=2.1.0
#tool nuget:?package=SqlLinqer&version=2.1.0
SQL Linqer
What is it used for?
This library is used to create application using a type of SQL database without the need to write queries as strings and maintain a strong set of data models that represent the data. This makes it much easier to develope complex database queries without the need of the developer to perform complex operations and it easier to update the code as all the developer needs to do is update the one data model and all queries will be updated.
Why not just use Microsoft's Enity Framework (EF)?
This is more of a personal preference. They way this library behaves is difference than EF and might not have all of the functionality that EF does. EF can sometimes be cumbersome to handle as it forces a certain developer style on the stucture of the data and I find this style of use to be easier. This includes modification, extending the functionality, and allowing for more complex queries.
How to
See source repo for working examples.
Build a data model:
using SqlLinqer.Modeling;
[SqlTable("Users")]
public class User : SqlLinqerPrimaryKeyObject<User, string>
{
[SqlPrimaryKey(dbGenerated: false)]
[SqlColumn("id")]
public string Id { get; set; }
[SqlColumn("username")]
public string Username { get; set; }
[SqlColumn("email")]
public string Email { get; set; }
public User()
{
Id = Guid.NewGuid().ToString();
}
}
Create/Insert Queries
var newUsers = new[]
{
new User()
{
Username = "ab789",
Name = "Big Boss",
Email = "boss@company.com",
ManagerId = null,
},
new User()
{
Username = "js354",
Name = "John Smith",
Email = "myemail@company.com",
ManagerId = "ab789",
},
};
var query = User
.BeginInsertAuto() // Creates a new query
.InsertAuto(newUsers) // Adds the objects to insert
.Execute(connector);
Read/Select Queries
// select only root columns
var query = User
.BeginSelect()
.SelectRootColumns()
.OrderBy(x => x.Name, SqlDir.ASC)
.Execute(connector);
Update Queries
var query = User
.BeginUpdate()
.Update(x => x.Email, "noreply@company.com")
.Where(x => x.Email, "%@company.com", SqlOp.LIKE)
.Execute();
Delete Queries
var query = User
.BeginDelete()
.Where(x => x.Email, "%@company.com", SqlOp.LIKE)
.Execute(connector);
| 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. 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 | 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
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.