internal static EntityFrameworkCoreProject ScaffoldModels(this EntityFrameworkCoreProject project) { foreach (var table in project.Database.Tables) { var selection = project.GetSelection(table); var definition = project.GetEntityClassDefinition(table, true); if (selection.Settings.UseDataAnnotations) { definition.AddDataAnnotations(table, project); } project.Scaffold(definition, project.GetDomainModelsDirectory(), project.Database.HasDefaultSchema(table) ? "" : table.Schema); } foreach (var view in project.Database.Views) { var selection = project.GetSelection(view); var definition = project.GetEntityClassDefinition(view, project.Database.HasDefaultSchema(view) ? project.GetDomainModelsNamespace() : project.GetDomainModelsNamespace(view.Schema)); if (selection.Settings.UseDataAnnotations) { definition.AddDataAnnotations(view, project); } project.Scaffold(definition, project.GetDomainModelsDirectory(), project.Database.HasDefaultSchema(view) ? "" : view.Schema); } return(project); }
private static EntityFrameworkCoreProject ScaffoldEntities(this EntityFrameworkCoreProject project) { foreach (var table in project.Database.Tables) { var selection = project.GetSelection(table); var definition = project.GetEntityClassDefinition(table, false); if (selection.Settings.UseDataAnnotations) { definition.AddDataAnnotations(table, project); } project.Scaffold(definition, project.GetEntityLayerDirectory(), project.Database.HasDefaultSchema(table) ? "" : table.Schema); } foreach (var view in project.Database.Views) { var selection = project.GetSelection(view); var definition = project.GetEntityClassDefinition(view, project.Database.HasDefaultSchema(view) ? project.GetEntityLayerNamespace() : project.GetEntityLayerNamespace(view.Schema)); if (selection.Settings.UseDataAnnotations) { definition.AddDataAnnotations(view, project); } project.Scaffold(definition, project.GetEntityLayerDirectory(), project.Database.HasDefaultSchema(view) ? "" : view.Schema); } // todo: Review this scaffolding //foreach (var tableFunction in project.Database.TableFunctions) //{ // var selection = project.GetSelection(tableFunction); // var definition = project.GetEntityClassDefinition(tableFunction); // project.Scaffold(definition, project.GetEntityLayerDirectory(), project.Database.HasDefaultSchema(tableFunction) ? "" : tableFunction.Schema); //} // todo: Review this scaffolding //foreach (var storedProcedure in project.Database.StoredProcedures) //{ // var selection = project.GetSelection(storedProcedure); // var definition = project.GetEntityClassDefinition(storedProcedure); // project.Scaffold(definition, project.GetEntityLayerDirectory(), project.Database.HasDefaultSchema(storedProcedure) ? "" : storedProcedure.Schema); //} return(project); }
public static EntityFrameworkCoreProject ScaffoldEntityLayer(this EntityFrameworkCoreProject project) { ScaffoldEntityInterface(project); foreach (var table in project.Database.Tables) { var selection = project.GetSelection(table); var definition = project.GetEntityClassDefinition(table); if (selection.Settings.UseDataAnnotations) { definition.AddDataAnnotations(table, project); } if (project.Database.HasDefaultSchema(table)) { CSharpCodeBuilder.CreateFiles(project.OutputDirectory, project.GetEntityLayerDirectory(), selection.Settings.ForceOverwrite, definition); } else { CSharpCodeBuilder.CreateFiles(project.OutputDirectory, project.GetEntityLayerDirectory(table.Schema), selection.Settings.ForceOverwrite, definition); } } foreach (var view in project.Database.Views) { var selection = project.GetSelection(view); var definition = project.GetEntityClassDefinition(view); if (selection.Settings.UseDataAnnotations) { definition.AddDataAnnotations(view, project); } if (project.Database.HasDefaultSchema(view)) { CSharpCodeBuilder.CreateFiles(project.OutputDirectory, project.GetEntityLayerDirectory(), selection.Settings.ForceOverwrite, definition); } else { CSharpCodeBuilder.CreateFiles(project.OutputDirectory, project.GetEntityLayerDirectory(view.Schema), selection.Settings.ForceOverwrite, definition); } } return(project); }