DotNetNext / SqlSugar

.Net aot ORM Fastest ORM Simple Easy VB.NET Sqlite orm Oracle ORM Mysql Orm postgresql ORm SqlServer oRm 达梦 ORM 人大金仓 ORM 神通ORM C# ORM , C# ORM .NET ORM NET5 ORM .NET6 ORM ClickHouse orm QuestDb ,TDengine ORM,OceanBase orm,GaussDB orm ,Tidb orm Object/Relational Mapping

Home Page:https://www.donet5.com/Home/Doc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

有 Expressionable 转 sql 语句的接口或者方法吗?

idea-zone opened this issue · comments

大概的应用场景是下面的:

// 假设正在对部门表进行检索,传入了下面的参数作为过滤条件,获取数据
Department dept = new Department();
dept.Id = 11;
dept.DeptName = "测试";

// 定义过滤条件
var predicate = Expressionable.Create<Department>();
predicate = predicate.And(it => it.IsDeleted == false);
predicate = predicate.AndIF( string.IsNullOrWhiteSpace(dept.DeptName), it => it.DeptName.Contains(dept.DeptName));

// 这里直接生成条件部分对应的 Sql 语句 (这是核心需求)
var appendSql =  predicate.SQL条件语句();

// 下一步想实现的用法,因为某些原因【主要没精力重写旧系统】【还有一个原因是这样用Ado的时候会方便很多】,需要兼容旧的接口,切换 Sqlsugar 和 Ado 操作
string strSQL= $"select * from  department  where {appendSql }";
var table = _dbClient.Ado.GetDataTable(strSQL);

https://www.donet5.com/Home/Doc?typeId=2359
有的可以将表达式转成sql看标题2

感谢

https://www.donet5.com/Home/Doc?typeId=2359 有的可以将表达式转成sql看标题2