加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在EF核心2.1中使用FreeText

发布时间:2020-12-15 08:38:42 所属栏目:百科 来源:网络整理
导读:我看到Entity Framework核心2.1有一个使用FREETEXT的新功能,但我不知道如何使用它,因为没有我可以在网上找到的例子. https://github.com/aspnet/EntityFrameworkCore/issues/11484 有人用过它还能给我一个简单的例子吗? 解决方法 首先确保已安装相关软件包M
我看到Entity Framework核心2.1有一个使用FREETEXT的新功能,但我不知道如何使用它,因为没有我可以在网上找到的例子.

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

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

解决方法

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

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

using Microsoft.EntityFrameworkCore;

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

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

注意:您可以在单元测试for example中看到它的工作原理.

要创建全文索引,目前不支持在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 statement cannot be used inside a user transaction

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读