IConditionalModel拼接的BUG 返回

SqlSugar 沟通中
9 307

我在使用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 phtttt VIP0
    2025/11/21

    补充:如果第一个条件是DateRange ,第二个条件是其他,则不会有问题;
    我使用的版本:5.1.4.210
    同时我想问下,有没有之前的哪个版本是没问题的,方便我回退版本来支持现有业务

    0 回复
  • phtttt phtttt VIP0
    2025/11/21

    我现在的解决方案是:

    foreach (var conditional in conditions)

    {

        q = q.Where(new List<IConditionalModel>() { conditional });

    }

    这样能正常加上各个条件之间的and

    0 回复
  • fate sta fate sta VIP0
    2025/11/21

    给一下具体用例。

    0 回复
  • fate sta fate sta VIP0
    2025/11/21
    能重现的。至少你描述的东西让我知道如何重现
    0 回复
  • fate sta fate sta VIP0
    2025/11/21

    DateRange  是新功能。也是最近几个版本有的

    0 回复
  • fate sta fate sta VIP0
    2025/11/21

     SqlSugarCore 5.1.4.211-preview01


    过五分钟安装预览版本,已修复

    0 回复
  • phtttt phtttt VIP0
    1个月前

    还需要用例不,大佬

    0 回复
  • fate sta fate sta VIP0
    1个月前

    不需要,已修复了。安装 预览版本。

    0 回复
  • @fate sta:同样类似的 FieldName = UtilMethods.FieldNameSql(); 时 也会这个问题 当 FieldName = UtilMethods.FieldNameSql();  非首个时 丢失 And 连接符

    0 回复