internal static string CreateObjectsScript(StoreItemCollection itemCollection, bool createSchemas) { SqlDdlBuilder builder = new SqlDdlBuilder(); foreach (EntityContainer container in itemCollection.GetItems <EntityContainer>()) { var entitySets = container.BaseEntitySets.OfType <EntitySet>().OrderBy(s => s.Name); if (createSchemas) { var schemas = new HashSet <string>(entitySets.Select(s => GetSchemaName(s))); foreach (string schema in schemas.OrderBy(s => s)) { // don't bother creating default schema if (schema != "dbo") { builder.AppendCreateSchema(schema); } } } foreach (EntitySet entitySet in container.BaseEntitySets.OfType <EntitySet>().OrderBy(s => s.Name)) { builder.AppendCreateTable(entitySet); } foreach (AssociationSet associationSet in container.BaseEntitySets.OfType <AssociationSet>().OrderBy(s => s.Name)) { builder.AppendCreateForeignKeys(associationSet); } } return(builder.GetCommandText()); }