搜索字符串列表中的任何字符串是否在 table 中
Search if any string from a list of strings is in table
我从客户那里得到一个字符串列表(他选择的项目),现在我需要 return 来自数据库的结果。客户端请求是:
List<string> campaignStrings
列表示例:
[0] - "292 | Mac/June 17"
[1] - "161 | Direct/June 17"
我正在尝试但没有成功的方法是:
var campaigns = ctx.V_CommercialCampaigns.Where(cam => campaignStrings.Any(x => cam.Name.Contains(x))).Select(id => id.Id).ToList();
我正在使用 "Contains",因为 "Name" 列可能与搜索词不相同。
我做错了什么?
如果要检查 cam.Name
是否出现在 campaignStrings
列表中,则需要将 where
子句更改为:
.Where(cam => campaignStrings.Any(x => x.Contains(cam.Name)))
试试这个解决方案
var campaigns = ctx.V_CommercialCampaigns.Where(cam => campaignStrings.Contains((cam))).Select(id => id.Id).ToList();
我从客户那里得到一个字符串列表(他选择的项目),现在我需要 return 来自数据库的结果。客户端请求是:
List<string> campaignStrings
列表示例:
[0] - "292 | Mac/June 17"
[1] - "161 | Direct/June 17"
我正在尝试但没有成功的方法是:
var campaigns = ctx.V_CommercialCampaigns.Where(cam => campaignStrings.Any(x => cam.Name.Contains(x))).Select(id => id.Id).ToList();
我正在使用 "Contains",因为 "Name" 列可能与搜索词不相同。
我做错了什么?
如果要检查 cam.Name
是否出现在 campaignStrings
列表中,则需要将 where
子句更改为:
.Where(cam => campaignStrings.Any(x => x.Contains(cam.Name)))
试试这个解决方案
var campaigns = ctx.V_CommercialCampaigns.Where(cam => campaignStrings.Contains((cam))).Select(id => id.Id).ToList();