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.
To provide a "better" answer than the confusing official scales, here are estimated market rates currently practiced by firms in Pontevedra.
Note: These are estimates. Always request a written budget. baremo honorarios abogados pontevedra better
| Legal Service | Traditional Baremo Approach | "Better" Modern Approach (Estimates) | | :--- | :--- | :--- | | Traffic Accidents (Minor) | % of Indemnity (approx 10-15%) | Flat Fee: €300 - €600 (No win, no fee common) | | Divorce (Mutual Agreement) | % of assets involved | Flat Fee: €400 - €800 (including court filing) | | Divorce (Contentious) | High % based on pension/income | Flat Fee: €1,500 - €3,000 + VAT | | Criminal Defense (Quick trial) | Fixed by court/scale | Flat Fee: €400 - €800 | | Labor Law (Dismissal) | % of settlement | Flat Fee: €600 - €1,200 (Success fee option) | | Notary & Registry | Fixed by Law (Not negotiated) | Cost + Service Fee: Lawyer handles paperwork for a small premium | To provide a "better" answer than the confusing
If you are looking for a "better" fee structure, you are likely looking for transparency and value for money. Here is how modern law firms in Pontevedra are offering improved billing models compared to the old rigid scales. If you are looking for a "better" fee
Pontevedra capital es más pequeña que Vigo, lo que suele jugar a su favor. Los abogados de Pontevedra tienen un coste de oficina ligeramente inferior, por lo que pueden ajustar más sus honorarios sin perder calidad. Pida presupuestos en las tres ciudades si su caso se puede llevar telemáticamente.
The Ilustre Colegio de la Abogacía de Pontevedra (ICAPON) publishes its own Criterios Orientadores de Honorarios Profesionales (Guiding Criteria). Unlike some bar associations in Spain (e.g., Madrid or Barcelona, where scales are purely indicative), ICAPON’s criteria carry significant weight in local courts. However, note: these are not legally binding contracts—they are guidelines. A "better" approach uses them as a baseline, not a ceiling.