Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }