У меня есть запрос LINQ, который я хочу выполнить и поместить результат в переменную или IQueryable. Однако я связываю результат с несколькими (от 4 до 10) элементами управления и хочу, чтобы запрос выполнялся только один раз.
- Когда я просто помещаю результат во все значения источника данных, запрос выполняется для каждого элемента управления, а элементы управления (например, комбинированные списки) меняют выбранные значения, чтобы они соответствовали друг другу при каждом изменении любого из них.
- Когда я привязываю элементы управления к result.ToList () или к чему-то подобному, это устраняет проблему синхронизации (т. Е. Они ведут себя независимо, как и должны), но запрос все равно выполняется один раз для каждого элемента управления.
Это были легкие пирожные в дни ADO.NET. Как я могу выполнить запрос LINQ один раз и при этом привязать данные к нескольким элементам управления?
псевдокод:
var result = from c in dc.whatevers select c;
ddlItem1.DataSource = result;
ddlItem2.DataSource = result;
ddlItem3.DataSource = result;
Также:
var result = from c in dc.whatevers select c;
ddlItem1.DataSource = result.ToList();
ddlItem2.DataSource = result.ToList();
ddlItem3.DataSource = result.ToList();
Также:
List<whatever> result = (from c in dc.whatevers select c).ToList();
ddlItem1.DataSource = result;
ddlItem2.DataSource = result;
ddlItem3.DataSource = result;