gpt4 book ai didi

c# - 如何在 EF core 2.1 中使用 FreeText

转载 作者:太空狗 更新时间:2023-10-29 17:42:55 24 4
gpt4 key购买 nike

我看到 Entity Framework core 2.1 有一个使用 FREETEXT 的新功能,但我不确定如何使用它,因为我无法在网上找到示例。

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"));

注意:您可以在单元测试中看到它是如何工作的,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

关于c# - 如何在 EF core 2.1 中使用 FreeText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51047514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com