Может быть лучше, чем Леонид:
private BindingSource _bs;
private List<Entity> _list;
_list = context.Entities;
_bs.DataSource = _list;
Теперь, когда требуется фильтрация:
_bs.DataSource = _list.Where<Entity>(e => e.cityID == 1).ToList<Entity>;
Таким образом, вы сохраняете исходный список (который извлекается один раз из контекста)а затем использовать этот оригинальный список для запроса в памяти (без перехода назад и вперед в базу данных).Таким образом, вы можете выполнять все виды запросов к исходному списку.