private SqlSelect BuildUnionQuery(IndexInfo index) { ISqlQueryExpression result = null; var baseQueries = index.UnderlyingIndexes.Select(BuildProviderQuery).ToList(); foreach (var select in baseQueries) { result = result == null ? (ISqlQueryExpression)select : result.Union(select); } var unionRef = SqlDml.QueryRef(result); var query = SqlDml.Select(unionRef); query.Columns.AddRange(unionRef.Columns); return(query); }