internal DbContextGenerator(string folder = "") { this.EntityCodeList = new List <string>(); this.directory = string.IsNullOrEmpty(folder) ? Environment.CurrentDirectory : Path.Combine(Environment.CurrentDirectory, folder); IServiceCollection services = new ServiceCollection() .AddEntityFrameworkSqlServer() .AddEntityFrameworkDesignTimeServices() .AddSingleton <ICSharpDbContextGenerator, MyDbContextGenerator>() .AddSingleton <ICSharpEntityTypeGenerator, MyEntityTypeGenerator>() .AddSingleton <IScaffoldingModelFactory, MyScaffoldingModelFactory>(); new SqlServerDesignTimeServices().ConfigureDesignTimeServices(services); var logger = services.GetService <IDiagnosticsLogger <DbLoggerCategory.Scaffolding> >(); var databaseModelFactory = new SqlServerDatabaseModelFactory(logger); MyDbContextGenerator dbContextGenerator = (MyDbContextGenerator)services.GetService <ICSharpDbContextGenerator>(); MyEntityTypeGenerator entityTypeGenerator = (MyEntityTypeGenerator)services.GetService <ICSharpEntityTypeGenerator>(); var scaffoldingModelFactory = (MyScaffoldingModelFactory)services.GetService <IScaffoldingModelFactory>(); var databaseModel = databaseModelFactory.Create(AppSettings.Connection, new List <string>(), new List <string>()); Model model = (Model)scaffoldingModelFactory.Create(databaseModel, false); this.DbContextCode = dbContextGenerator.WriteCode(model, $"{nameof(Quartz)}.{folder}", $"{nameof(Quartz)}Context", AppSettings.Connection, false, false); Helper.FormattingXml(model, databaseModel); foreach (var entityType in model.GetEntityTypes()) { var entityCode = entityTypeGenerator.WriteCode(entityType, $"{nameof(Quartz)}.{folder}", false); this.EntityCodeList.Add(entityCode); } this.WriteCode(scaffoldingModelFactory.Data, $"{nameof(Quartz)}.{folder}"); }
private static DatabaseModel GetDatabaseModel() { var logger = Services.GetService <IDiagnosticsLogger <DbLoggerCategory.Scaffolding> >(); var databaseModelFactory = new SqlServerDatabaseModelFactory(logger); using var connection = new SqlConnection(Connection.ConnectionString); return(databaseModelFactory.Create(connection, new DatabaseModelFactoryOptions(new List <string>(), new List <string>()))); }
public DatabaseModel CreateModel(string createSql, TableSelectionSet selection = null) { _testStore.ExecuteNonQuery(createSql); var reader = new SqlServerDatabaseModelFactory(); return(reader.Create(_testStore.Connection.ConnectionString, selection ?? TableSelectionSet.All)); }