使用 LINQ 查询搜索输入文本

问题描述 投票:0回答:1

我必须在名字和姓氏列中找到字符串项,其中包含一个或多个单词的数据,如下所示。我需要找到搜索文本至少满足两列中任何单词的匹配记录。

即:名字和姓氏。如何使用 LINQ 查询进行搜索?

数据库中:

名字:阿肖克·库马尔

姓氏:马赫什·普拉萨德

搜索文本 = ashok mahesh abc xyz

此处 ashok 匹配名字,mahesh 匹配姓氏。如何使用下面的 LINQ 查询来搜索它?

示例 Linq 查询:

getQuery = (_uow.GetRepository<EntityModel.UserOrganization>().GetAll().Where ( x => x.User.FirstName.ToLower().Contains(SearchText.ToLower()) )

提前致谢

c# entity-framework linq
1个回答
0
投票

使用

this
答案中的函数 FilterByItems。并用于您的案例。

var searchWords = SearchText.ToLower().Split(' ');

getQuery = _uow.GetRepository<EntityModel.UserOrganization>().GetAll()
    .FilterByItems(searchWords, 
        (x, w) => x.User.FirstName.ToLower().Contains(w) 
            || x.User.LastName.ToLower().Contains(w), true);
© www.soinside.com 2019 - 2024. All rights reserved.