IConditionalModel拼接的BUG 返回
phtttt 发布于2025/11/21
我在使用ConditionalModel时,遇到了这样的问题:
var cond = new List<IConditionalModel>();
当cond.Add多个一般条件(目前我只测试了等于和like)时没有问题;
当cond.Add 一般条件,再Add一个DateRange ,生成的sql中,第二个查询条件与第一个查询条件之间,没有and连接,导致报错;
即生成的sql类似:select * from Table1 WHERE `Name` = N'测试名称' ( `CreateTime`>='2025-11-01 00:00:00.000' AND `CreateTime`<'2025-11-15 00:00:00.000' )
热忱回答(9)
-
phtttt VIP0
2025/11/21补充:如果第一个条件是DateRange ,第二个条件是其他,则不会有问题;
我使用的版本:5.1.4.210
同时我想问下,有没有之前的哪个版本是没问题的,方便我回退版本来支持现有业务0 回复 -
phtttt VIP0
2025/11/21我现在的解决方案是:
foreach (var conditional in conditions)
{
q = q.Where(new List<IConditionalModel>() { conditional });
}
这样能正常加上各个条件之间的and
0 回复 -
fate sta VIP0
2025/11/21给一下具体用例。
0 回复 -
fate sta VIP0
2025/11/21能重现的。至少你描述的东西让我知道如何重现0 回复 -
fate sta VIP0
2025/11/21DateRange 是新功能。也是最近几个版本有的
0 回复 -
fate sta VIP0
2025/11/21SqlSugarCore 5.1.4.211-preview01
过五分钟安装预览版本,已修复
0 回复 -
phtttt VIP0
1个月前还需要用例不,大佬
0 回复 -
fate sta VIP0
1个月前不需要,已修复了。安装 预览版本。
0 回复 -
老菜鸟了 VIP0
1个月前@fate sta:同样类似的 FieldName = UtilMethods.FieldNameSql(); 时 也会这个问题 当 FieldName = UtilMethods.FieldNameSql(); 非首个时 丢失 And 连接符
0 回复