public string PropertySelectFragment(string name, string suffix, bool allProperties) { SelectFragment select = new SelectFragment(Factory.Dialect) .SetSuffix(suffix) .SetUsedAliases(IdentifierAliases); int[] columnTableNumbers = SubclassColumnTableNumberClosure; string[] columnAliases = SubclassColumnAliasClosure; string[] columns = SubclassColumnClosure; for (int i = 0; i < columns.Length; i++) { bool selectable = (allProperties || !subclassColumnLazyClosure[i]) && !IsSubclassTableSequentialSelect(columnTableNumbers[i]) && subclassColumnSelectableClosure[i]; if (selectable) { string subalias = GenerateTableAlias(name, columnTableNumbers[i]); select.AddColumn(subalias, columns[i], columnAliases[i]); } } int[] formulaTableNumbers = SubclassFormulaTableNumberClosure; string[] formulaTemplates = SubclassFormulaTemplateClosure; string[] formulaAliases = SubclassFormulaAliasClosure; for (int i = 0; i < formulaTemplates.Length; i++) { bool selectable = (allProperties || !subclassFormulaLazyClosure[i]) && !IsSubclassTableSequentialSelect(formulaTableNumbers[i]); if (selectable) { string subalias = GenerateTableAlias(name, formulaTableNumbers[i]); select.AddFormula(subalias, formulaTemplates[i], formulaAliases[i]); } } if (entityMetamodel.HasSubclasses) AddDiscriminatorToSelect(select, name, suffix); if (HasRowId) select.AddColumn(name, rowIdName, Loadable.RowIdAlias); return select.ToSqlStringFragment(); }
public override SqlString PropertySelectFragment( string alias, string suffix ) { SelectFragment frag = new SelectFragment( factory.Dialect ) .SetSuffix( suffix ) .SetUsedAliases( IdentifierAliases ); for( int i = 0; i < subclassColumnClosure.Length; i++ ) { string subalias = Alias( alias, subclassColumnTableNumberClosure[ i ] ); frag.AddColumn( subalias, subclassColumnClosure[ i ], subclassColumnClosureAliases[ i ] ); } for( int i = 0; i < subclassFormulaTemplateClosure.Length; i++ ) { string subalias = Alias( alias, subclassFormulaTableNumberClosure[ i ] ); frag.AddFormula( subalias, subclassFormulaTemplateClosure[ i ], subclassFormulaAliasClosure[ i ] ); } if( HasSubclasses ) { SqlStringBuilder builder = new SqlStringBuilder( 3 ); builder.Add( StringHelper.CommaSpace ); builder.Add( DiscriminatorFragment( alias ) .SetReturnColumnName( DiscriminatorAlias, suffix ) .ToSqlStringFragment() ); builder.Add( frag.ToSqlStringFragment() ); return builder.ToSqlString(); } else { return frag.ToSqlStringFragment(); } }
private SqlString ConcretePropertySelectFragment( string alias, bool[] includeProperty ) { int propertyCount = propertyColumnNames.Length; SelectFragment frag = new SelectFragment( Dialect ); for( int i = 0; i < propertyCount; i++ ) { if( includeProperty[ i ] ) { frag.AddColumns( Alias( alias, propertyTables[ i ] ), propertyColumnNames[ i ], propertyColumnNameAliases[ i ] ); } } return frag.ToSqlStringFragment( ); }
public SqlString SelectFragment( string alias ) { SelectFragment frag = new SelectFragment( dialect ) .SetSuffix( String.Empty ) //always ignore suffix for collection columns .AddColumns( alias, keyColumnNames, keyColumnAliases ) .AddColumns( alias, elementColumnNames, elementColumnAliases ); if( hasIndex ) { frag.AddColumns( alias, indexColumnNames, indexColumnAliases ); } if( hasIdentifier ) { frag.AddColumn( alias, identifierColumnName, identifierColumnAlias ); } return frag.ToSqlStringFragment( false ); }
// TODO NH: should remove duplication between this and the other overload, // probably using H3 approach (adding indirection through IInclusionChecker interface). protected string ConcretePropertySelectFragment(string alias, ValueInclusion[] inclusions) { int propertyCount = entityMetamodel.PropertySpan; int[] propertyTableNumbers = PropertyTableNumbersInSelect; SelectFragment frag = new SelectFragment(Factory.Dialect); for (int i = 0; i < propertyCount; i++) { if (inclusions[i] != ValueInclusion.None) { //ie. updateable, not a formula frag.AddColumns( GenerateTableAlias(alias, propertyTableNumbers[i]), propertyColumnNames[i], propertyColumnAliases[i] ); frag.AddFormulas( GenerateTableAlias(alias, propertyTableNumbers[i]), propertyColumnFormulaTemplates[i], propertyColumnAliases[i] ); } } return frag.ToSqlStringFragment(); }
public string PropertySelectFragment(string name, string suffix) { SelectFragment select = new SelectFragment(Factory.Dialect) .SetSuffix(suffix) .SetUsedAliases(IdentifierAliases); int[] columnTableNumbers = SubclassColumnTableNumberClosure; string[] columnAliases = SubclassColumnAliasClosure; string[] columns = SubclassColumnClosure; for (int i = 0; i < columns.Length; i++) { string subalias = Alias(name, columnTableNumbers[i]); select.AddColumn(subalias, columns[i], columnAliases[i]); } int[] formulaTableNumbers = SubclassFormulaTableNumberClosure; string[] formulaTemplates = SubclassFormulaTemplateClosure; string[] formulaAliases = SubclassFormulaAliasClosure; for (int i = 0; i < formulaTemplates.Length; i++) { string subalias = Alias(name, formulaTableNumbers[i]); select.AddFormula(subalias, formulaTemplates[i], formulaAliases[i]); } if (HasSubclasses) { AddDiscriminatorToSelect(select, name, suffix); } return select.ToSqlStringFragment(); }