我在我的数据库中有一个Products表,并且它有一个用于保存产品颜色的字符串列。
我试图实现一种功能,用户可以通过选择多个颜色名称来搜索产品。为此,我使用了包含多个颜色名称的C#List。
List<string> colorNames = new List<string>() { "silver" };
上面的代码显示,我目前只使用一种颜色来查找符合“银色”的产品。颜色。我使用的Linq查询如下:
context.Products.Where(prd => colorNames.Contains(prd.Color.ToLower().Trim()));
以上代码运行没有任何错误,但我面临的问题是它返回的产品只有银色。但在数据库中,现有的产品还有&#39; Light Silver&#39; ,&#39; Dark Silver Red&#39; 等颜色。我想要我的Linq查询也返回这些产品。
我知道这是不可能的,因为查询只会匹配银色,但我需要一个解决方法来执行此操作。
答案 0 :(得分:1)
context.Products.Where(prd => colorNames.Any(col => prd.Color.ToLower().Trim().Contains(col)));
你可以试一试