.NET最轻便的SQL利器sqlkata

    SqlKata查询生成器是一个用C# 编写的功能强大的Sql查询生成器。它生成的语句相当安全的。它遵循干净的命名约定,所以生成的SQL语句跟原生的非常相似。

    SqlKata查询生成器通过在受支持的数据库引擎上提供一个抽象级别,允许您使用相同的统一API处理多个数据库,并且可搭配 dapper等的使用,某种意义上可以有效替代数据库的存储过程。SqlKata支持多种数据库,如SqlServer、MySql、PostgreSql、Oracle 、Sqlite和Firebird等。并支持多种复杂的查询,例如嵌套条件、从子查询中选择、过滤子查询、条件语句等。如果你的项目是轻量级别的话,你甚至可以把它当作轻量级ORM。

使用方法

1、新建一个.NET7项目并添加sqlkata包

Install-Package SqlKata
Install-Package SqlKata.Execution//这个加上是可以执行

2、建立链接和声明使用

//建立链接
var connection = new SqlConnection("Data Source=.;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=654321");
//实例化compiler 的SQLServer编译器
var compiler = new SqlServerCompiler();
//compiler与链接关联
var db = new QueryFactory(connection, compiler);
//执行一条查询,意思是查询客户表中名字为刘德华的数据
var rel= db.Query("Customers").Where("Name","刘德华").Get();

生成的SQL如下,相当的规范,并且参数不是拼串出来的。

SELECT * FROM [Customers] WHERE [Name] = @p0',N'@p0 nvarchar(4000)',@p0=N'刘德华'

结果如下:

9c797ddef8359a5303029b72268868df.png

你可以关联转换成你所需要的对象,这里将不做案例说明。

3、纯使用SQL生成功能

//实例化compiler 的SQLServer编译器
var compiler = new SqlServerCompiler();
//生成语句
var query = new Query("Users").Where("Id", 1).Where("Status", "Active");
SqlResult result = compiler.Compile(query);
string sql = result.Sql;
//结果:SELECT * FROM [Users] WHERE [Id] = @p0 AND [Status] = @p1

上面代码是纯输出SQL语句,不链接数据库,跟数据库没有任何关系。

开源地址:https://github.com/sqlkata/querybuilder。

文档:https://sqlkata.com/docs

在线编译器:https://sqlkata.com/playground

结语

SqlKata查询生成器简单吧,4条语句完成数据库的链接查询,不用配置一大堆东西。但是这玩意在ORM横行的时代有点low,它主要可以用于纯SQL的项目配合使用,比如ADO.NET,dapper等,当然如前文所说,你也可以把它当作轻量ORM。另外该项目也正常更新维护,所以还算是一个优质的项目。希望本文对你有所收获,欢迎留言讨论。

版权声明:本文来源于网友收集或网友供稿,仅供学习交流之用,如果有侵权,请转告小编或者留言,本公众号立即删除。


~

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值