Beispiel #1
0
    /// <summary>
    /// Add join table(private)
    /// 結合テーブル追加(private)
    /// </summary>
    /// <param name="baseType"></param>
    /// <param name="joinType"></param>
    /// <param name="baseColumn"></param>
    /// <param name="joinColumn"></param>
    /// <param name="isInner"></param>
    private void AddJoin(Type baseType, Type joinType, string baseColumn, string joinColumn, bool isInner = true)
    {
        string        joinTableName  = this.GetDataAccessAttribute <DataAccessAttribute>(joinType).TableName;
        string        baseTableName  = this.GetDataAccessAttribute <DataAccessAttribute>(baseType).TableName;
        string        joinTableType  = (isInner) ? "inner" : "left";
        StringBuilder joinConditions = new StringBuilder();

        joinConditions.Append(string.Format("{0}.{1} = {2}.{3}", baseTableName, baseColumn, joinTableName, joinColumn));
        JoinSql.AppendLine(string.Format("{0} join {1} on {2}", joinTableType, joinTableName, joinConditions.ToString()));

        this.AddSelectType(joinType);
    }
Beispiel #2
0
    /// <summary>
    /// Add join table (And join only )
    /// 結合テーブル追加 (And結合のみ)
    /// </summary>
    /// <param name="baseType"></param>
    /// <param name="joinColumns">The same name row ,同名列</param>
    /// <param name="isInner"></param>
    public void AddJoinTable(Type baseType, Type joinType, string[] joinColumns, bool isInner = true)
    {
        DataAccessAttribute attribite = this.GetDataAccessAttribute <DataAccessAttribute>(joinType);
        string        tableName       = this.GetDataAccessAttribute <DataAccessAttribute>(baseType).TableName;
        string        joinTableType   = (isInner) ? "inner" : "left";
        StringBuilder joinConditions  = new StringBuilder();

        for (int i = 0; i < joinColumns.Length; i++)
        {
            if (i.Equals(0))
            {
                joinConditions.Append(" and ");
            }
            joinConditions.Append(string.Format("{0}.{1} = {2}.{3}", tableName, joinColumns[i], attribite.TableName, joinColumns[i]));
        }

        JoinSql.AppendLine(string.Format("{0} join {1} on {2}", joinTableType, attribite.TableName, joinConditions.ToString()));

        this.AddSelectType(joinType);
    }