SqlKata - 方便好用的 Sql query builder

SqlKata查询生成器是一个用C# 编写的功能强大的Sql查询生成器 。它是安全的,与框架无关 。灵感来源于可用的顶级查询生成器,如Laravel Query Builder和 Knex 。
SqlKata有一个富有表现力的API 。它遵循一个干净的命名约定 , 这与SQL语法非常相似 。
通过在受支持的数据库引擎上提供一个抽象级别 , 允许您使用相同的统一API处理多个数据库,并且可搭配 dapper 使用,可以有效替代数据库的存储过程 。
SqlKata支持复杂的查询,例如嵌套条件、从子查询中选择、过滤子查询、条件语句等 。目前它有built-in编译器,用于SqlServer、MySql、PostgreSql、Oracle 和Firebird等 。
扩展项目https://github.com/fairking/FluentSqlKata 可以轻松地与EntityFramework Core 6 一起使用,而无需进行大量代码更改.
完整的文档在https://sqlkata.com上查看 。
安装使用dotnet cli
$ dotnet add package SqlKata使用Nuget包管理器
PM> Install-Package SqlKataQuick ExamplesSetup Connectionvar connection = new SqlConnection("...");var compiler = new SqlCompiler();var db = new QueryFactory(connection, compiler)检索所有记录var books = db.Query("Books").Get();仅检索已出版的图书var books = db.Query("Books").WhereTrue("IsPublished").Get();取回一本书var introToSql = db.Query("Books").Where("Id", 145).Where("Lang", "en").First();检索最近的书籍:最近10本var recent = db.Query("Books").OrderByDesc("PublishedAt").Limit(10).Get();包括作者信息var books = db.Query("Books").Include(db.Query("Authors")) // Assumes that the Books table have a `AuthorId` column.Get();这将包括每个“书”上的“作者”属性
[{"Id": 1,"PublishedAt": "2019-01-01","AuthorId": 2"Author": { // <-- included property"Id": 2,"...": ""}}]加入作者表var books = db.Query("Books").Join("Authors", "Authors.Id", "Books.AuthorId").Select("Books.*", "Authors.Name as AuthorName").Get();foreach(var book in books){Console.WriteLine($"{book.Title}: {book.AuthorName}");}条件查询var isFriday = DateTime.Today.DayOfWeek == DayOfWeek.Friday;var books = db.Query("Books").When(isFriday, q => q.WhereIn("Category", new [] {"OpenSource", "MachineLearning"})).Get();分页var page1 = db.Query("Books").Paginate(10);foreach(var book in page1.List){Console.WriteLine(book.Name);}...var page2 = page1.Next();新增int affected = db.Query("Users").Insert(new {Name = "Jane",CountryId = 1});更新int affected = db.Query("Users").Where("Id", 1).Update(new {Name = "Jane",CountryId = 1});删除int affected = db.Query("Users").Where("Id", 1).Delete();【SqlKata - 方便好用的 Sql query builder】

    推荐阅读