搜索字符串列表中的任何字符串是否在 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();