Beispiel #1
0
        protected override string InternalBuild()
        {
            var conditionals       = ConditionalComponent.Build();
            var joinTableWithAlias = string.Format(base.Statements.Alias, TableName, JoinAlias);
            var claus = string.Format(GetJoinStatement(), joinTableWithAlias, conditionals);

            return(claus);
        }
Beispiel #2
0
        public JoinComponent(JoinTypes joinTypes, string tableName, string joinAlias, string selectAlias, Expression <Func <TJoin, TSelect, bool> > selectors)
        {
            JoinAlias = joinAlias;
            TableName = tableName;
            JoinTypes = joinTypes;

            var expressionJoinObjectProperties   = selectors.Parameters[0].ToExpressionProperty(joinAlias);
            var expressionSelectObjectProperties = selectors.Parameters[1].ToExpressionProperty(selectAlias);

            ConditionalComponent = new ConditionalComponent((BinaryExpression)selectors.Body, new[] { expressionJoinObjectProperties, expressionSelectObjectProperties });
        }
        public WhereComponent(string alias, Expression <Func <TEntity, bool> > selector)
        {
            if (typeof(ITuple).IsAssignableFrom(typeof(TEntity)))
            {
                throw new InvalidOperationException("Use TupleType Aliases with TupleType Expression");
            }

            var expressionProperties = new[] { selector.Parameters[0].ToExpressionProperty(alias) };

            ConditionalComponent = new ConditionalComponent((BinaryExpression)selector.Body, expressionProperties);
        }
        public WhereComponent(Expression <Func <TEntity, bool> > selector)
        {
            IEnumerable <ExpressionProperty> expressionProperties;

            if (typeof(ITuple).IsAssignableFrom(typeof(TEntity)))
            {
                expressionProperties = selector.Parameters[0].ToExpressionPropertyOfTuple();
            }
            else
            {
                expressionProperties = new[] { selector.Parameters[0].ToExpressionProperty() }
            };
            ConditionalComponent = new ConditionalComponent((BinaryExpression)selector.Body, expressionProperties);
        }
        public WhereComponent(ITuple alias, Expression <Func <TEntity, bool> > selector)
        {
            var aliases       = alias.GetType().GetFields();
            var aliasesValues = aliases.Select(p => (string)p.GetValue(alias)).ToArray();

            IEnumerable <ExpressionProperty> expressionProperties;

            if (typeof(ITuple).IsAssignableFrom(typeof(TEntity)))
            {
                expressionProperties = selector.Parameters[0].ToExpressionPropertyOfTuple(aliasesValues);
            }
            else
            {
                expressionProperties = new[] { selector.Parameters[0].ToExpressionProperty() }
            };
            ConditionalComponent = new ConditionalComponent((BinaryExpression)selector.Body, expressionProperties);
        }