产品介绍网站如何做seo,东莞网站建设 模具,自动做网站,免费高清视频下载SqlKata查询生成器是一个用C# 编写的功能强大的Sql查询生成器。它是安全的#xff0c;与框架无关。灵感来源于可用的顶级查询生成器#xff0c;如Laravel Query Builder和 Knex#xff1a;https://knexjs.org/。SqlKata有一个富有表现力的API。它遵循一个干净的命名约定与框架无关。灵感来源于可用的顶级查询生成器如Laravel Query Builder和 Knexhttps://knexjs.org/。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: 2Author: { // -- included propertyId: 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();