TLDR; Как добавить полнотекстовый индекс с помощью закодированных миграций Entity framework 5
У меня возникают проблемы с добавлением полнотекстового индекса в базу данных с использованием миграций Entity framework. Он должен быть там с самого начала, поэтому я пытаюсь изменить миграцию InitialCreate, которая была автоматически сгенерирована, чтобы добавить его.
Поскольку нет способа сделать это через API DbMigrations, я прибегал к запуску встроенного sql в конце кода «Up».
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 не может использоваться внутри транзакции пользователя.». Что ожидается и работает как задумано.
К счастью, 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);
Но вот изменение кода для этого (см. выше) приводит к новой ошибке тайм-аута 'Timeout expired. Время ожидания истекло до завершения операции или сервер не отвечает.'
Я попытался выплюнуть sql и запустить его вручную, и он отлично работает. Я также различал сгенерированный sql с запуском и без него вне транзакции, и они идентичны, поэтому это должно быть что-то в способе выполнения sql.
Заранее благодарю за любую помощь!