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); }
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); }