schangxiang@126.com
2025-05-13 02e4293d7baa69c961730191ec3eef22c96bee84
Weben_CMSרÓôúÂëÉú³ÉÆ÷/queryExtensions/CmsQueryExtensions/Extension/DynamicSearchParameters/WhereConditionsExtensions.cs
@@ -52,7 +52,9 @@
                            try
                            {
                                var new_conditions = PredicateExtensions.GetConditionExpressionForFuzzyQuery<T>(pro_value_searchFormInputAttrs.ToArray(), pro_value_searchVal);
                                conditions = conditions.And(new_conditions);
                                //And改为AndAlso,解决mysql å¤„理And会出错的问题(??And?? é€šå¸¸å¯¹åº” ??按位与 (&)??,不会短路求值,可能导致 SQL ç”Ÿæˆ NOT (NOT (...)) è¿™æ ·çš„冗余逻辑,??AndAlso?? å¯¹åº” ??逻辑与 (&&)??,会短路求值,生成的 SQL æ›´ç®€æ´é«˜æ•ˆã€‚) ã€Editby shaocx,2025-05-13】
                                //conditions = conditions.And(new_conditions);
                                conditions = conditions.Compose(new_conditions, Expression.AndAlso);
                            }
                            catch (Exception ex)
                            {
@@ -65,7 +67,9 @@
                        else if (i_pro_value_searchValMode == Convert.ToInt32(SearchFilterModeEnum.精准查询))
                        {//精准查询
                            var new_conditions = PredicateExtensions.GetConditionExpressionForPreciseQuery<T>(pro_value_searchFormInputAttrs.ToArray(), pro_value_searchVal);
                            conditions = conditions.And(new_conditions);
                            //And改为AndAlso,解决mysql å¤„理And会出错的问题(??And?? é€šå¸¸å¯¹åº” ??按位与 (&)??,不会短路求值,可能导致 SQL ç”Ÿæˆ NOT (NOT (...)) è¿™æ ·çš„冗余逻辑,??AndAlso?? å¯¹åº” ??逻辑与 (&&)??,会短路求值,生成的 SQL æ›´ç®€æ´é«˜æ•ˆã€‚) ã€Editby shaocx,2025-05-13】
                            //conditions = conditions.And(new_conditions);
                            conditions = conditions.Compose(new_conditions, Expression.AndAlso);
                            /*
                          pro_value_searchFormInputAttrs.ForEach(x =>
                          {
@@ -107,12 +111,14 @@
                if (hsmList.Count > 0)
                {
                    var high_conditions = PredicateExtensions.GetConditionExpressionForHighFieldByAnd<T>(hsmList);
                    conditions = conditions.And(high_conditions);
                    //And改为AndAlso,解决mysql å¤„理And会出错的问题(​​And​​ é€šå¸¸å¯¹åº” â€‹â€‹æŒ‰ä½ä¸Ž (&)​​,不会短路求值,可能导致 SQL ç”Ÿæˆ NOT (NOT (...)) è¿™æ ·çš„冗余逻辑,​​AndAlso​​ å¯¹åº” â€‹â€‹é€»è¾‘与 (&&)​​,会短路求值,生成的 SQL æ›´ç®€æ´é«˜æ•ˆã€‚) ã€Editby shaocx,2025-05-13】
                    conditions = conditions.Compose(high_conditions, Expression.AndAlso);
                }
                if (hsmForDatetimeList.Count > 0)
                {
                    var high_conditions = PredicateExtensions.GetConditionExpressionForHighFieldByAnd<T>(hsmForDatetimeList);
                    conditions = conditions.And(high_conditions);
                    var high_conditions_dt = PredicateExtensions.GetConditionExpressionForHighFieldByAnd<T>(hsmForDatetimeList);
                    //conditions = conditions.And(high_conditions_dt);
                    conditions = conditions.Compose(high_conditions_dt, Expression.AndAlso);
                }
                #endregion