public string CreateMigrationSql(EntityDatabaseMap entityMap)
        {
            DbProviderFactory factory = DbContextInstance.GetDatabaseProviderFactory();

            try
            {
                SqlQueryProviderLocator.AssertSupported(factory);
            }
            catch (NotImplementedException)
            {
                Console.WriteLine("ERROR: Unsupported DBMS type");
                throw new Exception();
            }

            IQueryGenerator generator = SqlQueryProviderLocator.ResolveQueryProvider(factory);

            var migrationScriptGenerator = new MigrationScriptGenerator(generator);
            var migrationScript          = migrationScriptGenerator.GenerateMigrationScript(entityMap);

            return(migrationScript);
        }
        public EntityDatabaseMap BuildEntityMap()
        {
            DbContextInstance = (DbContext)Activator.CreateInstance(DbContextType);
            DbProviderFactory factory = DbContextInstance.GetDatabaseProviderFactory();

            try
            {
                SqlQueryProviderLocator.AssertSupported(factory);
            }
            catch (NotImplementedException)
            {
                Console.WriteLine("ERROR: Unsupported DBMS type");
                throw new Exception();
            }

            ISqlHelper helper = SqlQueryProviderLocator.ResolveSqlHelper(factory);

            var entitiesBuilder = new EntityInformationBuilder(helper, new RelationshipMapper());


            var entityMap = entitiesBuilder.BuildEntityDatabaseMap(DbContextInstance);

            return(entityMap);
        }