Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用实体框架核心进行全文搜索?_C#_Sql Server_Asp.net Core_Entity Framework Core - Fatal编程技术网

C# 如何使用实体框架核心进行全文搜索?

C# 如何使用实体框架核心进行全文搜索?,c#,sql-server,asp.net-core,entity-framework-core,C#,Sql Server,Asp.net Core,Entity Framework Core,我有以下疑问: SELECT Animals.name FROM Animals WHERE CONTAINS(*, 'feline AND black'); 我无法将其转换为实体框架核心查询。我有一个带有目录的SQL Server,目录中有一些索引 我希望能够使用FREETEXT和CONTAINS对表进行全文查询。我在Entity Framework Core中找不到使用CONTAINS进行全文搜索的方法 从EF Core 2.1开始,这是可能的。您必须为Microsoft.Entity

我有以下疑问:

SELECT Animals.name 
FROM Animals 
WHERE CONTAINS(*, 'feline AND black');
我无法将其转换为实体框架核心查询。我有一个带有目录的SQL Server,目录中有一些索引


我希望能够使用
FREETEXT
CONTAINS
对表进行全文查询。我在Entity Framework Core中找不到使用
CONTAINS
进行全文搜索的方法

从EF Core 2.1开始,这是可能的。您必须为Microsoft.EntityFrameworkCore添加using语句,但在此之后,您可以按如下所示使用它

var results = db.Widgets
    .Where(x => EF.Functions.FreeText(x.ColumnName, "search text"));

据我所知,EF Core不支持SQL Server本机的全文搜索。您可能需要将这些查询打包到存储过程中,您可以从EF CORE调用该存储过程。您看过了吗?我看过了。不幸的是,它们没有可用于使用逻辑运算符的方法“CONTAINS”。到目前为止,EF Core似乎不支持全文搜索。我认为解决这个问题的唯一方法就是使用实体框架执行原始sql查询。如何在所有列上执行此操作?