protected override void AddDiscriminatorToSelect(SelectFragment select, string name, string suffix) { if (IsDiscriminatorFormula) { select.AddFormula(name, DiscriminatorFormulaTemplate, DiscriminatorAlias); } else { select.AddColumn(name, DiscriminatorColumnName, DiscriminatorAlias); } }
public override SqlString PropertySelectFragment(string alias, string suffix) { SelectFragment frag = new SelectFragment(factory.Dialect) .SetSuffix(suffix) .SetUsedAliases(IdentifierAliases); if (HasSubclasses) { frag.AddColumn(alias, DiscriminatorColumnName, DiscriminatorAlias); } return(frag.AddColumns(alias, subclassColumnClosure, subclassColumnAliasClosure) .AddFormulas(alias, subclassFormulaTemplateClosure, subclassFormulaAliasClosure) .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)); }
protected override SelectFragment GenerateSelectFragment(string alias, string columnSuffix) { /* * NH-1747 FIX * Note: the fix for NH-1747 may cause some problem when the same ColumnName is used to represent two different properties in the same hierarchy * In all our test it happened only for NHibernate.Test.Legacy.MultiTableTest.MultiTableCollections * The mapping Multi.hbm.xml had a column named "parent" to represent the Key of a set for the relation Lower->Top and SubMulti->SubMulti everything in the same hierarchy * NH TODO: Have to add an early check of same ColumnName used to represent two relations. */ var ojl = (IOuterJoinLoadable)ElementPersister; var selectFragment = new SelectFragment(Dialect).SetSuffix(columnSuffix); var columnNames = KeyColumnNames; var columnAliases = KeyColumnAliases; for (int i = 0; i < columnNames.Length; i++) { var column = columnNames[i]; var tableAlias = ojl.GenerateTableAliasForColumn(alias, column); selectFragment.AddColumn(tableAlias, column, columnAliases[i]); } return(selectFragment); }
protected override void AddDiscriminatorToSelect(SelectFragment select, string name, string suffix) { select.AddColumn(name, DiscriminatorColumnName, DiscriminatorAlias); }