public void AppendSelect(IQueryableColumn selectColumn) { string currentCulture = CultureInfo.CurrentCulture.Name; if (!session.UseDefaultLocale && session.DefaultLocale != currentCulture && session.IsLanguageSupported(currentCulture)) { IQueryableColumn localizedColumn = selectColumn.LocalizedColumn; if (localizedColumn != null) { localizedColumn = localizedColumn.As(selectColumn.Alias); ColumnPredicate localizePredicate = (localizedColumn.Table.FindColumn("Locale") == currentCulture) | (localizedColumn.Table.FindColumn("Locale") == null); if (!((ICommandBuilder)this).WherePredicates.Contains(localizePredicate)) { ((ICommandBuilder)this).WherePredicates.Add(localizePredicate); } localizedColumn.LocalizeFallbackColumn = selectColumn; Columns.Add(localizedColumn); foreach (QueryColumn primaryKey in selectColumn.Table.PrimaryKey) { JoinPredicate joinPredicate = primaryKey == localizedColumn.Table.FindColumn(primaryKey.Name); if (!LocalizedJoinPredicates.Contains(joinPredicate)) { LocalizedJoinPredicates.Add(joinPredicate); } } JoinInWhereClause = false; return; } } AppendFrom(selectColumn.Table); Columns.Add(selectColumn); }