如何从.NET应用程序创建全文搜索索引或目录?

时间:2013-01-10 20:06:47

标签: asp.net-mvc sql-server-2008 full-text-search orchardcms

我正在尝试使用具有多租户配置的SQL Server 2008 R2和Orchard CMS部署全文搜索解决方案。每个租户都有自己的数据库。我们使用自动数据迁移来管理数据库架构更改。我想使用迁移创建一个完整的文本目录和索引。但是我得到以下错误:

CREATE FULLTEXT CATALOG statement cannot be used inside a user transaction.

我确实知道错误的原因,但我无法确定解决方法。我试图在应用程序内部使用System.Data.SqlClient.SqlConnection类打开一个新的数据库连接,并以某种方式将其配置为不创建事务,但是这没有实现任何目的。

是否可以通过.NET提供程序创建全文索引/目录,而不是通过SSMS直接连接到数据库?

编辑:

我已尝试使用此代码与SMO:

var server = new Server(new ServerConnection(new SqlConnection(connectionString)));

var database = server.Databases[databaseName];

var fulltextCatalog = new FullTextCatalog(database, fullTextCatalogName);
fulltextCatalog.Create();

结果与此相同。

2 个答案:

答案 0 :(得分:0)

用户必须对数据库具有CREATE FULLTEXT CATALOG权限,或者是db_owner或db_ddladmin固定数据库角色的成员。

答案 1 :(得分:0)

您可以使用create and manage full-text indexes SMO - 以及任何其他SQL Server对象。