我正在使用SqlKata创建动态 SQL 查询。我有一个条件列表,存储在我的数据库中,这些条件是根据我的业务规则生成的。这是我的代码示例:var list = new List<Query>();foreach(var rule in rules){ var q = new Query() .Where(x=> x.Where("Price", "<", rule.Price).OrWhere("GoodsType", "=", rule.Type)); list.Add(q);}现在我想将这个列表项连接在一起,但没有一个Where()扩展重载接受Query类型参数。有没有办法将 where 子句连接在一起?这是我需要生成的预期查询的一个非常小的部分。select * from ship_schedule where Path = @path and scheduleDate= @DateAND (FD.IssueType ='O' OR fd.Path!='ILMTOP' OR (fd.Path='ILMTOP' AND F.carrier !='MAL'))AND (FD.IssueType ='O' OR fd.Path!='TOPILM' OR (fd.Path='ILMTOP' AND F.carrier !='MAL'))我需要创建查询的第二行到最后。
1 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
该Where方法是可加的,多次调用会为查询添加多个条件,因此您无需自行构建条件列表。
var query = new Query("ship_schedule").Where("Path", path);
foreach(var rule in rules) {
// loop over rules and append them to the query
if(col == null) {
query.WhereNull(col);
} else {
query.Where(q =>
q.Where("Price", "<", rule.Price)
.OrWhere("GoodsType", "=", rule.Type)
)
}
}
其他方法
使用When方法
query.When(condition, q => q.Where(...));
使用WhereIf方法
query.WhereIf(condition, "Id", "=", 10);
- 1 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消