public MyEntityTypeWriter( ScaffoldingUtilities scaffoldingUtilities, CSharpUtilities cSharpUtilities) : base(cSharpUtilities) { ScaffoldingUtilities = scaffoldingUtilities; CSharpUtilities = cSharpUtilities; }
public ScaffoldingDto ScaffoldDatabase(string connectionString, string rootNamespace, string contextName) { var scaffUtils = new ScaffoldingUtilities(); var csharpUtils = new CSharpUtilities(); var provider = new SqlServerAnnotationProvider(); var customConfiguration = new CustomConfiguration(connectionString, contextName, rootNamespace, true); var entityTypeWriter = new EntityTypeWriter(csharpUtils); var dbContextWriter = new SingularDbContextWriter(scaffUtils, csharpUtils); var configurationFactory = new ConfigurationFactory(provider, csharpUtils, scaffUtils); var loggerFactory = new LoggerFactory(); var logger = loggerFactory.CreateLogger <SqlServerDatabaseModelFactory>(); var revEngeConfig = new ReverseEngineeringConfiguration { ConnectionString = connectionString }; var sqlScaffoldModelFactory = new SingularScaffoldingModelFactory(new LoggerFactory(), new SqlServerTypeMapper(), new SqlServerDatabaseModelFactory(logger), new CandidateNamingService()); var codeWriter = new StringBuilderCodeWriter(new FileSystemFileService(), dbContextWriter, entityTypeWriter); var generator = new ReverseEngineeringGenerator(sqlScaffoldModelFactory, configurationFactory, codeWriter); var metaModel = generator.GetMetadataModel(revEngeConfig); var modelConfiguration = configurationFactory.CreateModelConfiguration(metaModel, customConfiguration); var dbContextData = dbContextWriter.WriteCode(modelConfiguration); var scaffoldingDto = new ScaffoldingDto { DbContextSource = dbContextData, ModelSources = modelConfiguration.EntityConfigurations .Select(entityConfiguration => entityTypeWriter.WriteCode(entityConfiguration)) .ToImmutableList() }; return(scaffoldingDto); }
public CustomConfigurationFactory( IRelationalAnnotationProvider extensionsProvider, CSharpUtilities cSharpUtilities, ScaffoldingUtilities scaffoldingUtilities) : base( extensionsProvider, cSharpUtilities, scaffoldingUtilities) { }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public virtual void AddEntityPropertiesConfiguration([NotNull] EntityConfiguration entityConfiguration) { Check.NotNull(entityConfiguration, nameof(entityConfiguration)); foreach (var property in ScaffoldingUtilities.OrderedProperties(entityConfiguration.EntityType)) { var propertyConfiguration = _configurationFactory.CreatePropertyConfiguration(entityConfiguration, property); AddPropertyConfiguration(propertyConfiguration); entityConfiguration.PropertyConfigurations.Add(propertyConfiguration); } }
public CustomModelConfiguration( ConfigurationFactory configurationFactory, IModel model, CustomConfiguration customConfiguration, IRelationalAnnotationProvider annotationProvider, CSharpUtilities cSharpUtilities, ScaffoldingUtilities scaffoldingUtilities) : base( configurationFactory, model, customConfiguration, annotationProvider, cSharpUtilities, scaffoldingUtilities) { _configurationFactory = configurationFactory; }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public ModelConfiguration( [NotNull] ConfigurationFactory configurationFactory, [NotNull] IModel model, [NotNull] CustomConfiguration customConfiguration, [NotNull] IRelationalAnnotationProvider annotationProvider, [NotNull] CSharpUtilities cSharpUtilities, [NotNull] ScaffoldingUtilities scaffoldingUtilities) { Check.NotNull(configurationFactory, nameof(configurationFactory)); Check.NotNull(model, nameof(model)); Check.NotNull(customConfiguration, nameof(customConfiguration)); Check.NotNull(annotationProvider, nameof(annotationProvider)); Check.NotNull(cSharpUtilities, nameof(cSharpUtilities)); Check.NotNull(scaffoldingUtilities, nameof(scaffoldingUtilities)); _configurationFactory = configurationFactory; Model = model; CustomConfiguration = customConfiguration; AnnotationProvider = annotationProvider; CSharpUtilities = cSharpUtilities; ScaffoldingUtilities = scaffoldingUtilities; }
public CustomDbContextWriter( ScaffoldingUtilities scaffoldingUtilities, CSharpUtilities cSharpUtilities) : base(scaffoldingUtilities, cSharpUtilities) { }
public MyDbContextWritier(ScaffoldingUtilities scaffoldingUtilities, CSharpUtilities cSharpUtilities) : base(scaffoldingUtilities, cSharpUtilities) { ScaffoldingUtilities = scaffoldingUtilities; }
public string GetSchemaSource(string connectionString, string assemblyNamespace, bool withUsings = true) { var loggerFactory = new LoggerFactory().AddConsole(); var ssTypeMap = new Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerTypeMapper(); var ssDbFac = new SqlServerDatabaseModelFactory(loggerFactory: loggerFactory); var ssScaffoldFac = new SqlServerScaffoldingModelFactory( loggerFactory: loggerFactory, typeMapper: ssTypeMap, databaseModelFactory: ssDbFac ); var ssAnnotationProvider = new Microsoft.EntityFrameworkCore.Metadata.SqlServerAnnotationProvider(); var csUtils = new CSharpUtilities(); var scaffUtils = new ScaffoldingUtilities(); var confFac = new ConfigurationFactory( extensionsProvider: ssAnnotationProvider, cSharpUtilities: csUtils, scaffoldingUtilities: scaffUtils ); var fs = new InMemoryFileService(); var sb = new StringBuilderCodeWriter( fileService: fs, dbContextWriter: new DbContextWriter( scaffoldingUtilities: scaffUtils, cSharpUtilities: csUtils ), entityTypeWriter: new EntityTypeWriter(cSharpUtilities: csUtils, scaffoldingUtilities: scaffUtils) ); var rGen = new ReverseEngineeringGenerator( loggerFactory: loggerFactory, scaffoldingModelFactory: ssScaffoldFac, configurationFactory: confFac, codeWriter: sb ); var outputPath = @"C:\temp"; var programName = "Ctx"; var conf = new ReverseEngineeringConfiguration { ConnectionString = connectionString, ContextClassName = programName, ProjectPath = "na", ProjectRootNamespace = assemblyNamespace, OutputPath = outputPath }; var output = new StringBuilder(); var resFiles = rGen.GenerateAsync(conf); resFiles.Wait(); var ctx = CreateContext(fs.RetrieveFileContents(outputPath, programName + ".cs"), isLibrary: withUsings); Console.WriteLine("CreateContext", ctx); if (!withUsings) { ctx = StripHeaderLines(3, ctx); } else { output.Append(_refs); } output.Append(ctx); foreach (var fpath in resFiles.Result.EntityTypeFiles) { output.Append(StripHeaderLines(4, fs.RetrieveFileContents(outputPath, System.IO.Path.GetFileName(fpath)))); } return(output.ToString()); }
public SingularDbContextWriter( ScaffoldingUtilities scaffoldingUtilities, CSharpUtilities cSharpUtilities) : base(scaffoldingUtilities, cSharpUtilities) { }