Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# 如何在ASP.NET Core 3中使用全文索引从数据库检索产品_C#_Sql_Asp.net Core 3.1_Ef Core 3.1 - Fatal编程技术网

C# 如何在ASP.NET Core 3中使用全文索引从数据库检索产品

C# 如何在ASP.NET Core 3中使用全文索引从数据库检索产品,c#,sql,asp.net-core-3.1,ef-core-3.1,C#,Sql,Asp.net Core 3.1,Ef Core 3.1,我已经在SQL Server中的Products表上创建了全文索引。我试图找到最好的方法来检索这些产品(在搜索过程中)的排名顺序 以下SQL按等级顺序显示产品: select ID, k.rank, Name from Products st inner join freetexttable(Products, Name, 'orange fanta') as k on st.ID=k.[key] order by rank desc 我尝试使用EntityFramework的方法EF.Fun

我已经在SQL Server中的Products表上创建了全文索引。我试图找到最好的方法来检索这些产品(在搜索过程中)的排名顺序

以下SQL按等级顺序显示产品:

select ID, k.rank, Name from Products st
inner join freetexttable(Products, Name, 'orange fanta') as k on st.ID=k.[key]
order by rank desc
我尝试使用EntityFramework的方法
EF.Functions.FreeText()
这并不是按等级排序的

我尝试使用FromRawSql:

products = _appDbContext.Set<Product>().FromSqlRaw("select ID, k.rank, Name from Products st inner join freetexttable(Products, Name, '{0}') as k on st.ID = k.[key] order by rank desc", currentFilter);
但是得到这个错误:

InvalidOperationException:使用不可组合的SQL调用了FromSqlRaw或FromSqlInterpolated,并在其上组合了一个查询。考虑调用“代码> >可枚举的< /代码>,在FROXSLBRAW或FROSQLILIDATION方法之后在客户端执行组合。

我尝试将
AsEnumerable
添加到末尾,但出现错误:

InvalidOperationException:“FromSql”操作的结果中不存在所需的列“Active”

“活动”是products表上的bool列,用于了解产品是否处于活动状态,是否应显示


最好的方法是什么?

如果您阅读了最后一条错误消息,它会说,
Active
列没有出现在结果中。如果这是表中的一列,因此是
产品
模型中的一个属性,那么EF将需要它(以及模型的所有其他不可为空的属性)来创建
产品
实体

尝试更改SQL以启动

select st.* from Products st

…并查看这是否有帮助。

As,
FromSqlRaw()
将您的查询包装在一个
SELECT[entity properties]FROM(yourquery)ORDER BY
中。你为什么不问一下你真正想解决的问题,这似乎是按自由文本排名对实体查询进行排序,以及你尝试过做什么?@CodeCaster在我看来,OP实际上很清楚,它试图创建一个具有排名的自由文本搜索(请参阅开头的查询),并且还显示了许多尝试的内容。@CodeCaster在SQL中的排序工作正常,我的目标是让它在Visual Studio中使用EF Core工作
select st.* from Products st