protected string ConcretePropertySelectFragment(string alias, IInclusionChecker inclusionChecker) { int propertyCount = PropertyNames.Length; int[] propertyTableNumbers = PropertyTableNumbersInSelect; SelectFragment frag = new SelectFragment(Factory.Dialect); for (int i = 0; i < propertyCount; i++) { if (inclusionChecker.IncludeProperty(i)) { frag.AddColumns(GenerateTableAlias(alias, propertyTableNumbers[i]), propertyColumnNames[i], propertyColumnAliases[i]); frag.AddFormulas(GenerateTableAlias(alias, propertyTableNumbers[i]), propertyColumnFormulaTemplates[i], propertyColumnAliases[i]); } } return frag.ToFragmentString(); }
protected virtual void AppendIndexColumns(SelectFragment frag, string alias) { if (hasIndex) { frag.AddColumns(alias, indexColumnNames, indexColumnAliases); } }
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 ); }
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( ); }
// 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(); }