public List<Dimension> GetDimensions( Microsoft.SqlServer.Management.Smo.Database database )
{
var dimensions = new List<Dimension>();
foreach( Microsoft.SqlServer.Management.Smo.Table table in database.Tables )
{
var tableName = table.Name.ToLower();
if( !tableName.StartsWith( "dim" ) )
continue;
var bimlTable = new Dimension
{
Name = table.Name,
SchemaName = database.Name + "." + table.Schema,
Columns = GetColumns( table ),
Indexes = GetIndexes( table ),
Keys = GetKeys( table ),
};
var annotations = GetAnnotations( table.ExtendedProperties );
if( annotations.Any() )
bimlTable.Annotations = annotations;
dimensions.Add( bimlTable );
}
return dimensions;
}