如何让所有标题匹配C#titleNames中至少一个单词

如何让所有标题匹配C#titleNames中至少一个单词,第1张

概述我必须使用Entity Framework和Lamda表达式获取titleName匹配“searchText”字符串中至少一个单词的所有标题.当有空格并将结果存储在数组中时,我将分割searchText.我正在编写以下代码但无法获得所需的输出. var searchTextArray = searchText.Split(' ');var result = entities.titles.Whe @H_502_2@ 我必须使用Entity Framework和Lamda表达式获取Titlename匹配“searchText”字符串中至少一个单词的所有标题.当有空格并将结果存储在数组中时,我将分割searchText.我正在编写以下代码但无法获得所需的输出.

var searchTextArray = searchText.Split(' ');var result = entitIEs.Titles.Where(x => searchTextArray.Contains(x.Titlename));

假设searchText包含“Loneliness Management”字符串,那么我想获得包含Titlename的所有标题的任何单词.
在这种情况下,我应该得到Titlenames为的标题

Some loneliness affect allLoneliness is painfulSchool ManagementProper management

更新1:
上面的查询生成sql为

SELECT * FROM Titles  WHERE (LOWER(Titlename) IN (N'loneliness',N'management')) AND (LOWER(Titlename) IS NOT NulL)

但我想生成像as的查询

SELECT * FROM Titles WHERE Titlename like N'%loneliness%' or Titlename like N'%management%'

我在上面的表达中缺少什么?

更新2

我得到了@ 3dGrabber答案的预期输出但仍然生成的SQL查询比T-sql中的liKE运算符有点乱.非常感谢你们.生成的sql现在就像

SELECT     *    FROM [dbo].[Titles] AS [Extent1]    WHERE  EXISTS (SELECT         1 AS [C1]        FROM  (SELECT             N'loneliness' AS [C1]            FROM  ( SELECT 1 AS X ) AS [SingleRowtable1]        UNION ALL            SELECT             N'management' AS [C1]            FROM  ( SELECT 1 AS X ) AS [SingleRowtable2]) AS [UnionAll1]        WHERE ( CAST(CHARINDEX([UnionAll1].[C1],LOWER([Extent1].[Titlename])) AS int)) > 0    )
解决方法 不确定EF是否可以转换所有使用的 *** 作,但这是我在linq-to-Objects中要做的事情:

var searchText = "Loneliness Management";var searchTerms = searchText.Tolower().Split(' ');var entitIEs = new [] {    "Some loneliness affect all","Loneliness is painful","School Management","No match here","Maybe the next one?","Proper management" };var Titles = entitIEs.Select(t => t.Tolower());var result = Titles.Where(t => searchTerms.Any(s => t.Contains(s)));

如果您需要不区分大小写的搜索,请确保EF支持它,或者首先将数据小写放入DB中.否则你可能会遇到性能问题.

@H_502_2@ 总结

以上是内存溢出为你收集整理的如何让所有标题匹配C#titleNames中至少一个单词全部内容,希望文章能够帮你解决如何让所有标题匹配C#titleNames中至少一个单词所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存