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(); }
protected SelectFragment CreateSelect(int[] subclassColumnNumbers, int[] subclassFormulaNumbers) { SelectFragment selectFragment = new SelectFragment(Factory.Dialect); int[] columnTableNumbers = SubclassColumnTableNumberClosure; string[] columnAliases = SubclassColumnAliasClosure; string[] columns = SubclassColumnClosure; for (int i = 0; i < subclassColumnNumbers.Length; i++) { if (subclassColumnSelectableClosure[i]) { int columnNumber = subclassColumnNumbers[i]; string subalias = GenerateTableAlias(RootAlias, columnTableNumbers[columnNumber]); selectFragment.AddColumn(subalias, columns[columnNumber], columnAliases[columnNumber]); } } int[] formulaTableNumbers = SubclassFormulaTableNumberClosure; String[] formulaTemplates = SubclassFormulaTemplateClosure; String[] formulaAliases = SubclassFormulaAliasClosure; for (int i = 0; i < subclassFormulaNumbers.Length; i++) { int formulaNumber = subclassFormulaNumbers[i]; String subalias = GenerateTableAlias(RootAlias, formulaTableNumbers[formulaNumber]); selectFragment.AddFormula(subalias, formulaTemplates[formulaNumber], formulaAliases[formulaNumber]); } return selectFragment; }
protected override void AddDiscriminatorToSelect(SelectFragment select, string name, string suffix) { if (IsDiscriminatorFormula) select.AddFormula(name, DiscriminatorFormulaTemplate, DiscriminatorAlias); else select.AddColumn(name, DiscriminatorColumnName, DiscriminatorAlias); }
protected virtual void AppendIndexColumns(SelectFragment frag, string alias) { if (hasIndex) { for (int i = 0; i < indexColumnIsSettable.Length; i++) { if (indexColumnIsSettable[i]) { frag.AddColumn(alias, indexColumnNames[i], indexColumnAliases[i]); } else { frag.AddFormula(alias, indexFormulaTemplates[i], indexColumnAliases[i]); } } } }
protected virtual void AppendElementColumns(SelectFragment frag, string elemAlias) { for (int i = 0; i < elementColumnIsSettable.Length; i++) { if (elementColumnIsSettable[i]) { frag.AddColumn(elemAlias, elementColumnNames[i], elementColumnAliases[i]); } else { frag.AddFormula(elemAlias, elementFormulaTemplates[i], elementColumnAliases[i]); } } }
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(); } }
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(); }