如何在EF核心2.1中使用FreeText

我看到Entity Framework核心2.1有一个使用FREETEXT的新function,但我不知道如何使用它,因为没有我可以在网上找到的例子。

https://github.com/aspnet/EntityFrameworkCore/issues/11484

有人用过它还能给我一个简单的例子吗?

首先确保您已安装相关软件包Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.SqlServer

然后确保您具有以下导入:

 using Microsoft.EntityFrameworkCore; 

现在您可以像这样使用FREETEXT SQL函数:

 var results = context.Foos .Where(f => EF.Functions.FreeText(f.ColumnName, "search text")); 

注意:例如,您可以在unit testing中看到它的工作原理。

要创建全文索引,目前不支持在Entity Framework Core中自动执行此操作。 相反,您需要手动将代码添加到迁移中。 因此,像往常一样创建迁移,打开它并添加类似于此的行:

 Sql("CREATE FULLTEXT CATALOG ft AS DEFAULT", true); Sql("CREATE FULLTEXT INDEX ON dbo.TableName(ColumnName) KEY INDEX UI_TableName_ColumnName WITH STOPLIST = SYSTEM", true); 

注意调用Sql的第二个参数来抑制事务。 如果省略,则可能会收到错误消息:

CREATE FULLTEXT CATALOG语句不能在用户事务中使用