public AbstractMetaManipulate(IDbLayer dbLayer, IDbGateConfig config) { DBLayer = dbLayer; Config = config; ColumnTypeMapItems = new List <ColumnTypeMapItem>(); ReferentialRuleTypeMapItems = new List <ReferentialRuleTypeMapItem>(); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { String alias = "union_src_" + Guid.NewGuid().ToString().Substring(0, 5); var sqlBuilder = new StringBuilder(); sqlBuilder.Append("("); for (int i = 0, queriesLength = Queries.Length; i < queriesLength; i++) { ISelectionQuery query = Queries[i]; QueryBuildInfo result = dbLayer.DataManipulate().ProcessQuery(buildInfo, query.Structure); if (i > 0) { sqlBuilder.Append(" UNION "); if (All) { sqlBuilder.Append(" ALL "); } } sqlBuilder.Append(result.ExecInfo.Sql + " union_src_" + i); } sqlBuilder.Append(") ").Append(alias); buildInfo.AddUnionAlias(alias); return(sqlBuilder.ToString()); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { if (Expr == null) { CreateJoinExpressionForDefinedRelation(buildInfo); } return(CreateSqlForExpression(dbLayer, buildInfo)); }
private void ProcessQueryValues(StringBuilder sb, CompareSegment segment, QueryBuildInfo buildInfo, IDbLayer dbLayer) { sb.Append(" IN "); var querySegment = (QuerySegment)segment.Right; ProcessQuery(sb, querySegment, buildInfo, dbLayer); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { var aliases = buildInfo.GetAlias(EntityType); if (!string.IsNullOrEmpty(aliases)) { return(aliases + ".*"); } return("*"); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { ISegment rootSegment = Expr.RootSegment; switch (rootSegment.SegmentType) { case SegmentType.Field: return(_processor.GetFieldName((FieldSegment)rootSegment, false, buildInfo)); } return(null); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { QueryBuildInfo result = dbLayer.DataManipulate().ProcessQuery(buildInfo, Query.Structure); string sql = "(" + result.ExecInfo.Sql + ")"; if (!string.IsNullOrEmpty(Alias)) { sql = sql + " as " + Alias; buildInfo.AddQueryAlias(Alias, Query); } return(sql); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { EntityInfo entityInfo = CacheManager.GetEntityInfo(EntityType); string sql = entityInfo.TableInfo.TableName; if (!string.IsNullOrEmpty(Alias)) { sql = sql + " as " + Alias; buildInfo.AddTypeAlias(Alias, EntityType); } return(sql); }
public DbGate(int dbType) { _config = new DbGateConfig(); _statistics = new DbGateStatistics(); InitializeDefaults(); IDbLayer dbLayer = LayerFactory.CreateLayer(dbType, _config); CacheManager.Init(_config); _persistRetrievalLayer = new PersistRetrievalLayer(dbLayer, _statistics, _config); _dataMigrationLayer = new DataMigrationLayer(dbLayer, _statistics, _config); dbLayer.DataManipulate(); }
private String CreateSqlForExpression(IDbLayer dbLayer, QueryBuildInfo buildInfo) { var from = new AbstractTypeFrom(); from.EntityType = TypeTo; from.Alias = TypeToAlias; var sb = new StringBuilder(); AppendJoinTypeSql(sb); sb.Append(from.CreateSql(dbLayer, buildInfo)); sb.Append(" ON "); processor.Process(sb, Expr.RootSegment, buildInfo, dbLayer); return(sb.ToString()); }
public string GetRelationObjectLoad(IDbLayer dbLayer, IRelation relation) { string queryId = relation.RelationShipName + "_" + relation.RelatedObjectType.FullName; string query = GetQuery(queryId); if (query == null) { query = dbLayer.DataManipulate().CreateRelatedObjectsLoadQuery(relation); SetQuery(queryId, query); } if (query == null) { throw new QueryBuildingException(String.Format("Child loading Query building failed for table {0} class {1} child object type {2}", TableInfo, EntityType.FullName, relation.RelatedObjectType.FullName)); } return(query); }
public string GetDeleteQuery(IDbLayer dbLayer) { const string queryId = "DELETE"; string query = GetQuery(queryId); if (query == null) { PopulateRelationColumns(); query = dbLayer.DataManipulate().CreateDeleteQuery(TableInfo.TableName, Columns); SetQuery(queryId, query); } if (query == null) { throw new QueryBuildingException(String.Format("Delete Query building failed for table {0} class {1}", TableInfo, EntityType.FullName)); } return(query); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { ISegment rootSegment = Expr.RootSegment; switch (rootSegment.SegmentType) { case SegmentType.Group: return(_processor.GetGroupFunction((GroupFunctionSegment)rootSegment, true, buildInfo)); case SegmentType.Field: return(_processor.GetFieldName((FieldSegment)rootSegment, true, buildInfo)); case SegmentType.Query: var querySegment = (QuerySegment)rootSegment; buildInfo = dbLayer.DataManipulate().ProcessQuery(buildInfo, querySegment.Query.Structure); return("(" + buildInfo.ExecInfo.Sql + ") as " + querySegment.Alias); } return(null); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { ISegment rootSegment = Expr.RootSegment; switch (rootSegment.SegmentType) { case SegmentType.Field: String sql = _processor.GetFieldName((FieldSegment)rootSegment, false, buildInfo); switch (OrderType) { case QueryOrderType.Ascend: sql += " ASC"; break; case QueryOrderType.Descend: sql += " DESC"; break; } return(sql); } return(null); }
public SqlLiteMetaManipulate(IDbLayer dbLayer, IDbGateConfig config) : base(dbLayer, config) { }
public PersistRetrievalLayer(IDbLayer dbLayer, IDbGateStatistics statistics, IDbGateConfig config) { _retrievalOperationLayer = new RetrievalOperationLayer(dbLayer, statistics, config); _persistOperationLayer = new PersistOperationLayer(dbLayer, statistics, config); }
public PaymentsController(IDbLayer context) { _context = context; }
public ClientsController(IDbLayer context) { _context = context; }
public string Process(StringBuilder sb, ISegment segment, QueryBuildInfo buildInfo, IDbLayer dbLayer) { if (sb == null) { sb = new StringBuilder(); } switch (segment.SegmentType) { case SegmentType.Field: ProcessField(sb, (FieldSegment)segment, buildInfo); break; case SegmentType.Group: ProcessGroup(sb, (GroupFunctionSegment)segment, buildInfo); break; case SegmentType.Value: ProcessValue(sb, (ValueSegment)segment, buildInfo); break; case SegmentType.Compare: ProcessCompare(sb, (CompareSegment)segment, buildInfo, dbLayer); break; case SegmentType.Merge: ProcessMerge(sb, (MergeSegment)segment, buildInfo, dbLayer); break; case SegmentType.Query: ProcessQuery(sb, (QuerySegment)segment, buildInfo, dbLayer); break; } return(sb.ToString()); }
private void ProcessCompare(StringBuilder sb, CompareSegment segment, QueryBuildInfo buildInfo, IDbLayer dbLayer) { if (segment.Left != null) { Process(sb, segment.Left, buildInfo, dbLayer); } switch (segment.Mode) { case CompareSegmentMode.Between: ProcessBetween(sb, segment, buildInfo, dbLayer); return; case CompareSegmentMode.In: switch (segment.Right.SegmentType) { case SegmentType.Value: ProcessInValues(sb, segment, buildInfo); break; case SegmentType.Query: ProcessQueryValues(sb, segment, buildInfo, dbLayer); break; } return; case CompareSegmentMode.Exists: sb.Append(" EXISTS "); break; case CompareSegmentMode.NotExists: sb.Append(" NOT EXISTS "); break; case CompareSegmentMode.Eq: sb.Append(" = "); break; case CompareSegmentMode.Ge: sb.Append(" >= "); break; case CompareSegmentMode.Gt: sb.Append(" > "); break; case CompareSegmentMode.Le: sb.Append(" <= "); break; case CompareSegmentMode.Lt: sb.Append(" < "); break; case CompareSegmentMode.Like: sb.Append(" like "); break; case CompareSegmentMode.Neq: sb.Append(" <> "); break; default: break; } Process(sb, segment.Right, buildInfo, dbLayer); }
private void ProcessQuery(StringBuilder sb, QuerySegment segment, QueryBuildInfo buildInfo, IDbLayer dbLayer) { buildInfo = dbLayer.DataManipulate().ProcessQuery(buildInfo, segment.Query.Structure); sb.Append(" ( "); sb.Append(buildInfo.ExecInfo.Sql); sb.Append(" ) "); }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { return(_processor.Process(null, Expr.RootSegment, buildInfo, dbLayer)); }
private void ProcessBetween(StringBuilder sb, CompareSegment segment, QueryBuildInfo buildInfo, IDbLayer dbLayer) { sb.Append(" BETWEEN ? AND ? "); var valueSegment = (ValueSegment)segment.Right; object[] values = valueSegment.Values; for (int i = 0, valuesLength = 2; i < valuesLength; i++) { Object value = values[i]; var param = new QueryExecParam(); param.Index = buildInfo.ExecInfo.Params.Count; param.Type = valueSegment.Type; param.Value = value; buildInfo.ExecInfo.Params.Add(param); } }
public PlayersController(IDbLayer service) { _service = service; }
private void ProcessMerge(StringBuilder sb, MergeSegment segment, QueryBuildInfo buildInfo, IDbLayer dbLayer) { int count = 0; if (segment.Mode == MergeSegmentMode.ParaAnd || segment.Mode == MergeSegmentMode.ParaOr) { sb.Append("("); } foreach (ISegment subSegment in segment.Segments) { if (count > 0) { switch (segment.Mode) { case MergeSegmentMode.And: case MergeSegmentMode.ParaAnd: sb.Append(" AND "); break; case MergeSegmentMode.ParaOr: case MergeSegmentMode.Or: sb.Append(" OR "); break; } } Process(sb, subSegment, buildInfo, dbLayer); count++; } if (segment.Mode == MergeSegmentMode.ParaAnd || segment.Mode == MergeSegmentMode.ParaOr) { sb.Append(")"); } }
public AccessDataManipulate(IDbLayer dbLayer) : base(dbLayer) { }
public RetrievalOperationLayer(IDbLayer dbLayer, IDbGateStatistics statistics, IDbGateConfig config) : base(dbLayer, statistics, config) { _proxyGenerator = new ProxyGenerator(); }
public CarsController(IDbLayer context) { _context = context; }
public string CreateSql(IDbLayer dbLayer, QueryBuildInfo buildInfo) { return(Sql); }
public DefaultDataManipulate(IDbLayer dbLayer) : base(dbLayer) { }