我正在制作一个 SP2010 页面,用户可以在其中按阶段过滤项目(这是一个多选字段)。出于性能原因和过滤器的性质,我不得不求助于 System.Linq.Dynamic 来进行此查询。
我尝试了以下(这不是真正的代码,但举例说明了我在做什么):
var lstObjects = new List<object>();
var query = "Phase = @0 ";
lstObjects.Add(Phase.Value);
context.myList.Where(query,lstObjects.ToArray());
如果项目只有一个阶段并且是被过滤的阶段,则此方法有效。如果该项目有多个阶段(如阶段 1 和 2)并且我按阶段 1 过滤,它必须显示。如何过滤多选字段?
编辑:忘了提,对象“Phase.Value”的类型是使用 SPMetal 生成的标志枚举。