每个 BindingSource 都有一个属性SupportsFiltering(和SupportsSorting)。如果您将entitySet 设置为 DataSource,这两个属性将自动设置为false!所以有一些可能的解决方案。您可以为您提供一个扩展方法,如此处IEnumberable<T>
所示,或者您选择使用Linq2Entities
.
Linq2Entities的代码段可能是:
myEntity context = new myEntity();
myBindingSource.DataSource = (from m in context.myTable
where m.PROPERTY MEETS CONDITION
select m).ToList<TYPE>();
扩展方法的片段:
// extension method
public static IEnumerable<T> Filter<T>(this IEnumerable<T> list, Func<T, bool> filterParam) {
return list.Where(filterParam);
}
// filtering example
context.myTable.Filter(x => x.ItemName.StartsWith("Test"))
此外,这个主题之前已经讨论过很多次,甚至在SO上也是如此。