예제 #1
0
        protected override void AddFilterCondition <T>(
            Expression <Func <T, bool> > selector,
            string alias = null,
            LogicalOperator logicalOperator = LogicalOperator.NotSet)
        {
            var body             = selector.Body as BinaryExpression;
            var conditions       = currentFilterGroup.Conditions;
            var filterCondition1 = new FilterCondition();

            filterCondition1.Alias           = alias;
            filterCondition1.EntityType      = typeof(T);
            filterCondition1.Left            = "_LambdaTree_";
            filterCondition1.LocigalOperator = logicalOperator;
            filterCondition1.LambdaTree      = AtkExpressionWriterSql <T> .AtkWhereWriteToString(selector, AtkExpSqlType.atkWhere, "[", "]");

            var filterCondition2 = filterCondition1;

            conditions.Add(filterCondition2);
        }
        protected override IWhereClauseBuilder AddConditionToCurrentGroup <TEntity>(
            Expression <Func <TEntity, bool> > expression,
            LogicalOperator locigalOperator,
            string alias       = null,
            string tableName   = null,
            string tableSchema = null)
        {
            ThrowIfNotInitialised();
            IsClean = false;
            var conditions           = currentGroup.Conditions;
            var whereClauseCondition = new WhereClauseCondition();

            whereClauseCondition.Alias           = alias;
            whereClauseCondition.LocigalOperator = locigalOperator;
            whereClauseCondition.LeftTable       = string.IsNullOrWhiteSpace(tableName) ? TableNameFromType <TEntity>() : tableName;
            whereClauseCondition.LeftSchema      = string.IsNullOrWhiteSpace(tableSchema) ? "dbo" : tableSchema;
            whereClauseCondition.Left            = "_LambdaTree_";
            whereClauseCondition.Right           = AtkExpressionWriterSql <TEntity> .AtkWhereWriteToString(expression, AtkExpSqlType.atkWhere, "[", "]");

            conditions.Add(whereClauseCondition);
            return(this);
        }
예제 #3
0
        protected override void AddFilterCondition <T>(
            Expression <Func <T, bool> > selector,
            string alias = null,
            LogicalOperator logicalOperator = LogicalOperator.NotSet)
        {
            var conditions = currentFilterGroup.Conditions;
            var lambdaTree =
                AtkExpressionWriterSql <T> .AtkWhereWriteToStringWithParameters(selector, AtkExpSqlType.AtkWhere, "[",
                                                                                "]");

            var filterCondition1 = new FilterCondition
            {
                Alias                = alias,
                EntityType           = typeof(T),
                Left                 = "_LambdaTree_",
                LocigalOperator      = logicalOperator,
                LambdaTree           = lambdaTree?.Sql,
                ParameterDefinitions = lambdaTree?.Parameters,
                ExpressionOperator   = lambdaTree?.Operator
            };

            conditions.Add(filterCondition1);
        }