public void Add(DbSchemaObject schemaObject) { switch (schemaObject.SchemaObjectType) { case ESchemaObjectType.Table: Tables.Add((DbTable)schemaObject); break; case ESchemaObjectType.View: Views.Add((DbView)schemaObject); break; case ESchemaObjectType.StoredProcedure: StoredProcs.Add((DbStoredProc)schemaObject); break; case ESchemaObjectType.ScalarFunction: ScalarFunctions.Add((DbScalarFunction)schemaObject); break; case ESchemaObjectType.TableFunction: TableFunctions.Add((DbTableFunction)schemaObject); break; case ESchemaObjectType.Trigger: Triggers.Add((DbTrigger)schemaObject); break; case ESchemaObjectType.ForeignKey: ForeignKeys.Add((DbForeignKey)schemaObject); break; default: throw new ArgumentOutOfRangeException(); } }