我有一个dbml上下文查询,看起来像这样:

var SQLQueryResult = (from activeTable in context.activeTabless
                      where (
                               activeTable .AssignedTo == "Person1" ||
                               activeTable .AssignedTo == "Person2" ||
                               activeTable .AssignedTo == "Person3")
                    select new { ... });


我的问题是,如何根据用户选择来更新where字段,使其具有任意数量的or(不仅仅是上面的三个)?

假设数字可以来自列表或数组。
对于直接的SQL来说这很简单,但是不确定如何通过Linq to SQL做到这一点。

最佳答案

var persons = new []{"Person1", "Person2", "Person3"};
var SQLQueryResult = (from activeTable in context.activeTabless
                      where ( persons.Contains(activeTable .AssignedTo))
                    select new { ... });


您可以使用.Contains()IEnumerable扩展方法检查集合中是否存在某些内容。

09-13 01:23