fun scaffold()

in src/rider/main/kotlin/com/jetbrains/rider/plugins/efcore/cli/api/DbContextCommandFactory.kt [17:54]


    fun scaffold(efCoreVersion: DotnetEfVersion, options: DialogCommonOptions, connection: String, provider: String,
                 outputFolder: String, useAttributes: Boolean, useDatabaseNames: Boolean, generateOnConfiguring: Boolean,
                 usePluralizer: Boolean, dbContextName: String, dbContextFolder: String, scaffoldAllTables: Boolean,
                 tablesList: List<String>, scaffoldAllSchemas: Boolean, schemasList: List<String>): CliCommand {
        val presentation = CliCommandPresentationInfo(
            EfCoreUiBundle.message("scaffold.dbcontext.presentable.name"),
            EfCoreUiBundle.message("dbcontext.has.been.scaffolded"))

        return EfCoreCliCommandBuilder(intellijProject, KnownEfCommands.DbContext.scaffold, options, presentation).apply {
            add(connection)
            add(provider)

            addIf("--data-annotations", useAttributes)
            addNamed("--context", dbContextName)
            addNamed("--context-dir", dbContextFolder)
            add("--force")
            addNamed("--output-dir", outputFolder)

            if (!scaffoldAllSchemas) {
                schemasList.forEach {
                    addNamed("--schema", it)
                }
            }

            if (!scaffoldAllTables) {
                tablesList
                    .filter { it.isNotEmpty() }
                    .forEach { addNamed("--table", it) }
            }

            addIf("--use-database-names", useDatabaseNames)

            if (efCoreVersion.major >= 5) {
                addIf("--no-onconfiguring", !generateOnConfiguring)
                addIf("--no-pluralize", !usePluralizer)
            }
        }.build()
    }