.NET library that aims to facilitate the combination of DbContexts (EntityFrameworkCore) and SqlKata queries.
$ dotnet add package SqlKata.EntityFrameworkCore.NET library that aims to facilitate the combination of DbContexts (EntityFrameworkCore) and SqlKata queries.
PM> Install-Package SqlKata.EntityFrameworkCore
using SqlKata;
using SqlKata.Compilers;
using SqlKata.EntityFrameworkCore;
using var Db = new MyDbContext();
// Set the compiler.
SqlKataEntityFramework.SetDefaultCompiler(new MySqlCompiler());
// Example 1
var BerkanLogins = Db.UsersLogins.FromSqlKata(
Query => Query.From("users_logins").Where("user_id", 1).Limit(0).OrderByDesc("id")).ToList();
Console.WriteLine($"BerkanLogins: Admin logged in {BerkanLogins.Count} times, last login from {BerkanLogins.FirstOrDefault()?.IpAddress}");
// Example 2
var UserLogin2 = Db.UsersLogins.FromSqlKata(new Query("users_logins")
.Where("user_id", "6")
.Limit(1))
.FirstOrDefault();
Console.WriteLine($"UserLogin2: {UserLogin2?.IpAddress}");
// Example 3 - Executing commands
var LoginsDeleted = Db.Database.ExecuteSqlKata(new Query("users_logins")
.Where("ip_address", "LIKE", "127.0.0.1")
.OrderBy("id")
.AsDelete());
Console.WriteLine($"{LoginsDeleted} logins were deleted!");
// Example 4 - Executing commands
var RowsUpdated = Db.Database.ExecuteSqlKata(new Query("users_groups_links")
.AsUpdate(new { user_group_id = 7 })
.Where("user_id", 1)
.Where("user_group_id", 6));
Console.WriteLine($"{RowsUpdated} rows were affected!");
You are free to use this library however you or your company wants to.