0

当我想在我的程序中同时搜索和筛选SQL Server中的全文搜索但在实体框架中同时进行搜索和筛选时,我的程序有一个包含100.000条记录的数据库它不起作用。 我用库的名称是“Fissoft.EntityFramework.Fts”在实体框架中使用全文搜索时返回空值

var text = FullTextSearchModelUtil.FreeText("searched text", true); 
      var query = db.Mainindustapp.Where(c => c.UnitName.Contains(text)).ToList(); 
      return query.ToList(); 

但是当我直接发送全文搜索代码到SQL服务器它将响应。下面的代码是我说的:

Mainindustapp = db.Mainindustapp.SqlQuery 
      ("SELECT * FROM[DB_industapp].[dbo].[Mainindustapps] WHERE FREETEXT(([UnitName], [Product]), @p0)", SearchString); 

我应该提到在SQL Server中启用了目录。

+0

您只搜索'UnitName'通过LINQ的/ EF但是' UnitName' ** OR **'Product'通过Sql查询时。你已经尝试过'.Where(c =>“*”。Contains(text))',如[demo](https://github.com/fissoft/Fissoft.EntityFramework.Fts/blob/master/README .MD)? – Filburt

+0

你是否在'query'中获得任何东西?为什么你要返回'query.ToList()',你可以省略tolist部分,只是传递查询。它已经是列表格式 –

回答

-1

你只用单位名,当你写这个搜索:

var query = db.Mainindustapp.Where(c => c.UnitName.Contains(text)).ToList(); 

试试这个,我认为它会工作:

var query = db.Mainindustapp.Where(c =>"*".Contains(text)).ToList();