合并LINQ查询中条目的解密搜索

本文关键字:解密 搜索 LINQ 查询 合并 | 更新日期: 2023-09-27 18:14:51

我有以下搜索查询:

IQueryable<File> files = GetFiles(f => f.Clients.Any(fc => fc.Contacts.Any(c => c.Companies.Any(x => x.Name.Contains(searchText)))));

不幸的是,Companies.Name的搜索永远不会工作,因为Name是加密的。

所以我有以下解密的Companies列表。这是一个存储过程,它使用SQL CLR来解密Name字段:

List<Company> companies = GetSearchCompanies(searchText).Query.ToList();

这个列表工作正常,它返回一个基于searchText的公司列表。

我的问题是我是否可以替换原始的files公司列表,以便能够针对解密的Company名称进行搜索,以及针对Contacts, Clients等的其他搜索。

合并LINQ查询中条目的解密搜索

不如这样写:

var newFiles = from f in files
               join c in companies on f.CompanyId equals c.CompanyId
               select new File
               {
                   prop1 = f.prop1,
                   //Assign all your other properties
                   Company = c
               };