Get the DatabaseModel using Entity Framework
The following code gives the database model.
var services = new ServiceCollection().AddEntityFrameworkDesignTimeServices();
var designTimeServices = new Microsoft.EntityFrameworkCore.SqlServer.Design.Internal.SqlServerDesignTimeServices();
designTimeServices.ConfigureDesignTimeServices(services);
var sourceDatabaseProviders = services.BuildServiceProvider();
var databaseModelFactory = sourceDatabaseProviders.GetRequiredService<IDatabaseModelFactory>();
var options = new DatabaseModelFactoryOptions(tablesToInclude, schemas);
var databaseModel = databaseModelFactory.Create(connectionString, options);
The line highlighted above will change based on the database:-
// Oracle
var designTimeServices = new Oracle.EntityFrameworkCore.Design.Internal.OracleDesignTimeServices();
// Postgres
var designTimeServices = new Npgsql.EntityFrameworkCore.PostgreSQL.Design.Internal.NpgsqlDesignTimeServices();
// MySql
var designTimeServices = new Pomelo.EntityFrameworkCore.MySql.Design.Internal.MySqlDesignTimeServices();
// Sqlite
var designTimeServices = new Microsoft.EntityFrameworkCore.Sqlite.Design.Internal.SqliteDesignTimeServices();