如何将 where 与字符串列表一起使用

本文关键字:列表 一起 字符串 where | 更新日期: 2023-09-27 17:56:27

我有字符串列表,如"一"、"二"、"三",

我想从数据库中搜索并选择至少具有其中之一的所有项目,我想通过实体框架执行此操作。为此,我使用:

 if (SearchVM.Tags.Count > 0)
                //SourceList= SourceList.Where(x=>x.Tags.Where(...));

它不起作用,因为它是错误和不完整的。

通过 T-sql 是 :

select * from SourceList where tagname in (select name from SearchList)

如何将 where 与字符串列表一起使用

试试这个:

var SearchList= new List<string>{"one" , "two" , "three" };
var result = dataContext.SourceList.Where(p => p.Tags.Any(t => SearchList.Contains(t.TagName)));

Contains将被翻译成IN声明