TLDR;如何使用實體框架添加全文索引5代碼遷移在實體框架中創建全文索引編碼遷移
我遇到了使用實體框架遷移將全文索引添加到數據庫的問題。它需要從一開始就在那裏,所以我試圖修改自動生成的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語句不能在用戶事務內部使用。'。預期和按設計工作。
謝天謝地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的方式。
在此先感謝您的幫助!
嘿,感謝您的意見。那麼它是否作爲單獨的遷移工作? – 2013-05-22 11:44:47
葉,我已經把它作爲一個單獨的遷移工作。表的創建發生在InitialCreate遷移中,並且全文本目錄和索引是在InitialCreate遷移後要執行的單獨遷移中創建的。 – jspaey 2013-05-22 15:04:11