Я создаю страницу SP2010, где пользователь может фильтровать элементы по своей фазе (это поле многоканального). По соображениям производительности и характеру фильтров мне пришлось прибегнуть к System.Linq.Dynamic, чтобы сделать этот запрос.Поле многоканальных данных с динамическим linq
Я попробовал следующее (это не реальный код, но иллюстрирует то, что я делаю):
var lstObjects = new List<object>();
var query = "Phase = @0 ";
lstObjects.Add(Phase.Value);
context.myList.Where(query,lstObjects.ToArray());
Это работает, если элемент имеет только один этап и является один фильтруется. Если элемент имеет несколько фаз (например, Фаза 1 и 2), и я фильтрую по Фазе 1, он должен показать. Как фильтровать поля многозадачности?
EDIT: Вспомним, что тип объекта «Phase.Value» - это перечисление флага, которое было сгенерировано с использованием SPMetal.
Объект может иметь несколько фаз, но вы можете фильтровать только один. Однако запрос должен быть с динамическим Linq, потому что другие фильтры фильтруют и обеспечивают лучшую производительность. – jpiolho
Не могу сказать, что я полностью тебя понимаю. Имеет ли объект m (в моем примере) несколько фаз или lstObjects имеют несколько фаз или оба? –