C# 如何构建一个查询表,从数据库列中查找字符串数组的所有单词
我有这个密码,任何人都有解决办法C# 如何构建一个查询表,从数据库列中查找字符串数组的所有单词,c#,asp.net-core,iqueryable,ef-core-3.1,asqueryable,C#,Asp.net Core,Iqueryable,Ef Core 3.1,Asqueryable,我有这个密码,任何人都有解决办法 string[] splitSearch = request.Search.Split(' ');// for example: [best , selling , book , of , the , year] or [in , memory , of , love] var queryable = _context.books.AsQueryable(); queryable = queryable .Where(x => x.
string[] splitSearch = request.Search.Split(' ');// for example: [best , selling , book , of , the , year] or [in , memory , of , love]
var queryable = _context.books.AsQueryable();
queryable = queryable
.Where(x => x.Title.Contains(request.Search)
|| x.Description.Contains(request.Search)
foreach (string split in splitSearch)
{
|| x.Title.Contains(split)
|| x.Description.Contains(split)
}
);
var Books = await queryable
.Skip(request.Offset ?? 0)
.Take(request.Limit ?? 3).ToListAsync();
但由于where子句中不允许使用foreach,因此它会出错
如果我在foreach中放入所有可查询项,然后在每个循环中,我的查询受添加的where子句的限制并返回假结果,我需要在where子句中输入“| |”,我不知道我的客户想要输入多少单词关于
| | splitSearch.Any(s=>x.Title.Contains)| x.Description.Contains)
无法翻译LINQ表达式(弹出大错误),如果您想这样做:| | splitSearch.Contains(x.Title)| | splitSearch.Contains(x.Description)它是splitSearch中唯一一个查找准确标题或描述的方法,换句话说,它的find what splitSearch包含与数据库相似的内容,但我需要哪个数据库包含与splitSearch相似的内容,结果是1到1000个不同的内容有什么错误?我的意思是,我写的,any
出于某种原因存在这就是错误:LINQ表达式无法翻译,为什么?因为它的服务器异常错误,并且我在终端中看到了它,所以您创建了一个对linq Translator没有意义的循环| | splitSearch.Any(s=>x.Title.Contains(s)| | x.Description.Contains(s))
您的linq表达式无法翻译(大错误弹出),如果您想这样做:| | splitSearch.Contains(x.Title)| | splitSearch.Contains(x.Description)它在splitSearch中唯一能找到准确的标题或描述,换句话说,它的find what splitSearch包含与数据库相似的内容,但我需要什么数据库包含与splitSearch相似的内容,结果是1到1000个不同的错误?我的意思是,我写的,any
出于某种原因存在这就是错误:LINQ表达式无法翻译,为什么?因为它的服务器异常错误,并且我在终端中看到了它,所以您创建了一个对linq translator没有意义的循环