无法在 Linq 查询中使用 C# 列表过滤掉记录

Unable to filter out records using C# list in Linq query

我的数据库中有一个产品 table,它有一个用于保存产品颜色的字符串列。

我正在尝试实现一项功能,用户可以通过选择多个颜色名称来搜索产品。为此,我使用了包含多个颜色名称的 C# 列表。

List<string> colorNames = new List<string>() { "silver" };

上面的代码显示我目前只使用一种颜色来查找匹配 'silver' 颜色的产品。我使用的 Linq 查询如下:

context.Products.Where(prd => colorNames.Contains(prd.Color.ToLower().Trim()));

上面的代码运行没有任何错误,但我面临的问题是 returning 产品只有银色。但是在数据库中也有现有的产品具有 'Light Silver''Dark Silver Red' 等颜色。我想要我的 Linq 查询return 还有这些产品。

我知道这是不可能的,因为查询将只匹配银色,但我需要一个解决方法来做到这一点。

context.Products.Where(prd => colorNames.Any(col => prd.Color.ToLower().Trim().Contains(col)));

你可以试一试