A fluent SQL query builder for C#
var query = db.Query("Books").OrderByDesc("PublishingDate");
if(Request.Has("category.name"))
{
var category = Request.Get("category.name");
query.Join("Categories", "Categories.Id", "Books.CategoryId")
.Where("Categories.Name", category);
}
var recentBooks = query.Limit(10).Get();
You will be able to write complex queries without hitting the docs
It uses the parameter binding technique, to prevent SQL injection.
It supports Operator whitelisting.
It Supports SqlServer, MySql, PostgreSql, Oracle, SQLite and Firebird.
Sub queries, nested Where conditions, Common Table Expressions, Complex Join statements and more.
Don't wait, add your own methods.
Extend the current compiler to support your favorite database.
Available when you need the little push, Date/Time and String helper methods like
WhereDate(), WhereTime(), WhereContains() and many more.
No long setup required, just write the query and get the data.
With few lines of code, you can start building your app.
It cannot be simpler!
var compiler = new SqlServerCompiler();
var db = new QueryFactory(connection, compiler);
var books = db.Query("Books").Get();
db.Query("Books").Where(q =>
q.Where("Stock", "<", 50).OrWhere("InHighDemand", 1)
).Union(
db.Query("Books").Where("Price", "<", 10)
);
Forget about hacky solutions, and write the query the way you want it from the begining.
Unleash your SQL skill and write performant queries from the first minute.
A better way to expose your queries.
Share your base queries with your team, and let them build on top of it.
Kind of stored procedure but written in C#.
// define the base queries
class TransactionService
{
public Query All()
{
return db.Query("Transactions").WhereTrue("IsApproved");
}
public Query Latest(int top = 10)
{
return All().OrderByDesc("Date").Take(top);
}
}
// then extend them as needed per request
var data = transactionService.Latest(10)
.Join("Accounts", "Accounts.Id", "AccountId")
.Get();
SqlKata is compatible with both .NET Core and .NET Framework.
Works on Windows, Linux and macOS.
Build advanced dashbaords and reports without sacrificing the performance.
“Developers say that they never had this powerfullness before.”
var visitsTimeline = db.Query("Visits")
.Join("Users", "Users.Id", "Visits.UserId")
.WhereBetween("2026-02-08", "2026-05-08")
.GroupBy("Users.Id", "Visits.Date")
.Select("Users.Id", "Visits.Date")
.SelectRaw("count(1) as [Count]")
.Having("Count", ">", 5)
.Get();
var activity = db.Query("Activities")
.Join("Users", "Users.Id", "Visits.UserId")
.OrderByDesc("Date")
.Union(new Query("Alerts"))
.OrderBy("Date")
.Get();
SqlKata make it easy to build Web API interfaces, you can use it to build REST or GRAPHQL interfaces.
Powered with some useful methods like Include, ForPage and Paginate.
Ending could be an epiphany where they realize the negative impact and pivot to more positive content, or they accept their role in the internet culture. Alternatively, they might lose their audience when the novelty fades. Need to decide on a message—maybe about staying true to oneself or the fleeting nature of internet fame.
Another angle: the puke compilation is a cover for something else. Maybe they're actually solving crimes or gathering evidence, but that might complicate the story too much. No, better to stick to a straightforward narrative focused on their career and personal life. Include aspects like online anonymity, dealing with trolls, the loneliness of being an online creator, and the impact on mental health. video title aleblossom puke compilation cam work
In a dimly-lit studio apartment above a laundromat, Alaric "Aleblossom" Bloom , a 24-year-old aspiring artist disillusioned by traditional mediums, discovers an unconventional form of expression. Once a painter known for surreal landscapes, Alaric now livestreams with a niche internet following who crave absurd humor. His "puke compilation cam work" isn’t just chaos—it’s a rebellion against a world that dismissed his talent. Each session is meticulously choreographed, blending food dye, fake vomit, and real-life gag-inducing challenges (citrus + spicy gummy worm combos, anyone). Ending could be an epiphany where they realize
Conflict could arise from family, friends, or society disapproving of the content. Maybe Aleblossom uses the puke videos to deal with personal issues, like emotional stress or a way to connect with others. The story might end with them reevaluating their choices or achieving success despite the controversy. Another angle: the puke compilation is a cover