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); }
JoinBuilder BuildJoin(string joinTableName, string jointTableAlias, JoinType type) { JoinBuilder join = new JoinBuilder(this, this.tableName, joinTableName, jointTableAlias) { Type = type }; return(join); }
public JoinBuilder(QueryBuilder <T> queryBuilder, JoinBuilder joinBuilder, EntityMap joinMap) { this.queryBuilder = queryBuilder; this.joinBuilder = joinBuilder; this.joinMap = joinMap; }