2016-10-17 5 views
3

У меня есть таблицы MSSQL, созданные ServiceStack.OrmLite, и я хотел бы программным образом изменить типы некоторых столбцов или, возможно, удалить и повторно создать некоторые из них (с разными типами). Проблема в том, что некоторые из них могут использоваться в индексах (также созданных OrmLite из атрибутов [Index]/[CompositeIndex]). Есть ли простой способ попросить OrmLite отказаться и создать все индексы, используемые конкретным столбцом?Создайте индекс в ServiceStack OrmLite

Я заметил, что есть IDbConnection.CreateIndex, но это, вероятно, не будет работать для составных индексов. Существует также IDbConnection.DropIndex, но для этого требуется имя индекса, которого у меня нет.

ответ

2

Отсутствует API, который говорит «отбрасывать/воссоздавать индексы для столбца», единственные предложения OrmLite API DDL относятся к классу OrmLiteSchemaModifyApi.

Для любых других модификаций таблиц, которые вы хотите выполнить программно, вам необходимо использовать db.ExecuteSql.

+0

ОК, спасибо. Будете ли вы открыты для PR, который реализовал что-то вроде этого? Я рассматриваю API как: метод для удаления индекса для столбца и метода для удаления/создания всех индексов, которые используют указанные столбцы (включая составные индексы). Возможно, были бы полезны методы для создания и индексирования всех индексов - это просто демонстрация существующей функциональности, используемой CreateTable. – EM0

+1

@ EM0 мы будем открыты для PR, он просто должен быть интуитивным в использовании и не подрывать существующую базу кода – mythz

Смежные вопросы