コード例 #1
0
ファイル: QueryBuilder.cs プロジェクト: malweka/GoliathData
        JoinBuilder<T, TRelation> BuildJoinBuilder<TRelation>(JoinType joinType)
        {
            JoinBuilder jbuilder = new JoinBuilder(innerBuilder, Table.TableName, null, null);
            var map = GetMapConfig();

            EntityMap joinMap = map.GetEntityMap(typeof(TRelation).FullName);

            var count = Table.Relations.Count;
            if (Table.IsSubClass)
                count = count + 1;

            var prefix = TableQueryMap.CreatePrefix(count + 1, 2);

            switch (joinType)
            {
                case JoinType.Inner:
                    innerBuilder.InnerJoin(joinMap.TableName, prefix);
                    break;
                case JoinType.Full:
                    break;
                case JoinType.Left:
                    innerBuilder.LeftJoin(joinMap.TableName, prefix);
                    break;
                case JoinType.Right:
                    innerBuilder.RightJoin(joinMap.TableName, prefix);
                    break;
            }
            return new JoinBuilder<T, TRelation>(this, jbuilder, joinMap);
        }
コード例 #2
0
        JoinBuilder BuildJoin(string joinTableName, string jointTableAlias, JoinType type)
        {
            JoinBuilder join = new JoinBuilder(this, this.tableName, joinTableName, jointTableAlias)
            {
                Type = type
            };

            return(join);
        }
コード例 #3
0
 public JoinBuilder(QueryBuilder <T> queryBuilder, JoinBuilder joinBuilder, EntityMap joinMap)
 {
     this.queryBuilder = queryBuilder;
     this.joinBuilder  = joinBuilder;
     this.joinMap      = joinMap;
 }