#servicestack #ormlite-servicestack
#servicestack #ormlite-servicestack
Вопрос:
У меня есть несколько таблиц MSSQL, созданных ServiceStack.Мы с ORMLite хотели бы программно изменить типы некоторых столбцов или, возможно, удалить и заново создать некоторые из них (с разными типами). Проблема в том, что некоторые из них могут использоваться в индексах (также созданных ORMLite из атрибутов [Index] / [CompositeIndex]). Есть ли простой способ попросить ORMLite удалить и создать все индексы, используемые определенным столбцом?
Я заметил, что есть IDbConnection.Создайте индекс, но это, вероятно, не будет работать для составных индексов. Существует также IDbConnection.DropIndex, но для этого требуется имя индекса, которого у меня нет.
Ответ №1:
Нет API, который говорит «удаление / повторное создание индексов для столбца», единственные API DDL, предлагаемые ORMLite, находятся в классе OrmLiteSchemaModifyApi .
Вам нужно будет использовать db.Запустите SQL для любых других изменений таблицы, которые вы хотите выполнить программно.
Комментарии:
1. Хорошо, спасибо. Были бы вы открыты для PR, который реализовал что-то подобное? Я представляю API как: метод удаления индекса для столбца и метод удаления / создания всех индексов, которые используют указанные столбцы (включая составные индексы). Возможно, методы удаления / создания всех индексов также были бы полезны — это просто раскрыло бы существующую функциональность, используемую CreateTable.
2. @EM0 мы были бы открыты для PR, он просто должен быть интуитивно понятным в использовании и не нарушать существующую базу кода