Exemplo n.º 1
0
        public static Sql On <TLeft, TRight>(this Sql.SqlJoinClause sql, Expression <Func <TLeft, object> > leftMember,
                                             Expression <Func <TRight, object> > rightMember, params object[] args)
        {
            var leftType       = typeof(TLeft);
            var rightType      = typeof(TRight);
            var leftTableName  = leftType.FirstAttribute <TableNameAttribute>().Value;
            var rightTableName = rightType.FirstAttribute <TableNameAttribute>().Value;

            var left            = ExpressionHelper.FindProperty(leftMember) as PropertyInfo;
            var right           = ExpressionHelper.FindProperty(rightMember) as PropertyInfo;
            var leftColumnName  = left.FirstAttribute <ColumnAttribute>().Name;
            var rightColumnName = right.FirstAttribute <ColumnAttribute>().Name;

            string onClause = string.Format("{0}.{1} = {2}.{3}",
                                            SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName(leftTableName),
                                            SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumnName(leftColumnName),
                                            SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName(rightTableName),
                                            SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumnName(rightColumnName));

            return(sql.On(onClause));
        }
Exemplo n.º 2
0
        public static Sql On <TLeft, TRight>(this Sql.SqlJoinClause sql, ISqlSyntaxProvider sqlSyntax, Expression <Func <TLeft, object> > leftMember,
                                             Expression <Func <TRight, object> > rightMember, params object[] args)
        {
            var leftType       = typeof(TLeft);
            var rightType      = typeof(TRight);
            var leftTableName  = leftType.GetTableName();
            var rightTableName = rightType.GetTableName();

            var leftColumn  = ExpressionHelper.FindProperty(leftMember) as PropertyInfo;
            var rightColumn = ExpressionHelper.FindProperty(rightMember) as PropertyInfo;

            var leftColumnName  = leftColumn.GetColumnName();
            var rightColumnName = rightColumn.GetColumnName();

            string onClause = string.Format("{0}.{1} = {2}.{3}",
                                            sqlSyntax.GetQuotedTableName(leftTableName),
                                            sqlSyntax.GetQuotedColumnName(leftColumnName),
                                            sqlSyntax.GetQuotedTableName(rightTableName),
                                            sqlSyntax.GetQuotedColumnName(rightColumnName));

            return(sql.On(onClause));
        }
Exemplo n.º 3
0
 public static Sql On <TLeft, TRight>(this Sql.SqlJoinClause sql, Expression <Func <TLeft, object> > leftMember,
                                      Expression <Func <TRight, object> > rightMember, params object[] args)
 {
     return(On <TLeft, TRight>(sql, SqlSyntaxContext.SqlSyntaxProvider, leftMember, rightMember, args));
 }