internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state)
        {
            var sql = state.GetDataSql(this, isFullName);

            if (sql != null)
            {
                return(sql);
            }

            object obj    = _baseFieldInfo.CreateSqlString(factory, isFullName, state);
            var    values = (IEnumerable)LambdaExpressionExtend.ConvertLambdaObject(_collection);
            var    list   = new List <string>();

            foreach (var item in values)
            {
                list.Add(state.AddDataParameter(factory, _baseFieldInfo.ToParameter(item.AdjustValue())));
            }

            if (list.Count > 0)
            {
                sql = factory.CreateCollectionParamsQuerySql(obj,
                                                             _isNot ? QueryCollectionPredicate.NotIn : QueryCollectionPredicate.In, list);
            }
            else
            {
                var value = _isNot;
                sql = factory.CreateBooleanConstantSql(value);
            }
            state.SetDataSql(this, isFullName, sql);
            return(sql);
        }
Example #2
0
        internal override string CreateSqlString(CommandFactory factory, bool isFullName, CreateSqlState state)
        {
            var value = LambdaExpressionExtend.ConvertLambdaObject(_value);
            var ret   = Convert.ToBoolean(value);

            if (_not)
            {
                ret = !ret;
            }
            return(factory.CreateBooleanConstantSql(ret));
        }