TL;DR; Как добавить полный текстовый индекс, используя кодировку Entity framework 5 закодированные миграции
У меня возникают проблемы с добавлением полного текстового индекса в базу данных с использованием миграции структуры Entity. Он должен быть с самого начала, поэтому я пытаюсь изменить миграцию InitialCreate, которая была автоматически сгенерирована для ее добавления.
Так как нет способа сделать это через DbMigrations API, я прибегал к выполнению встроенного sql в конце кода "Вверх".
Sql("create fulltext catalog AppNameCatalog;");
Sql("create fulltext index on Document (Data type column Extension) key index [PK_dbo.Document] on AppNameCatalog;");
Когда это запускается, все создается хорошо до тех пор, пока не достигнет этого sql, затем он выдает ошибку sql. CREATE FULLTEXT CATALOG statement не может использоваться внутри пользовательской транзакции. '. Ожидается, что он будет работать.
К счастью, Sql() имеет перегрузку, которая позволяет запускать sql вне транзакции миграции. Потрясающие! Я думал.
Sql("create fulltext catalog AppNameCatalog;", true);
Sql("create fulltext index on Document (Data type column Extension) key index [PK_dbo.Document] on AppNameCatalog;", true);
Но низкий уровень и модификация кода для этого (см. выше) приводит к новой ошибке тайм-аута. Истекло время ожидания. Период ожидания истекает до завершения операции или сервер не отвечает. '
Я попытался выплюнуть sql и запустить его вручную, и он отлично работает. Я также различал сгенерированный sql и без его запуска за пределами транзакции, и они идентичны, поэтому это должно быть что-то в том, как выполняется sql.
Заранее благодарим за помощь!