C#-在Entity Framework中使用bindingSource的筛选器
作者:互联网
我正在使用C#win-form应用程序.
以我的形式,我有绑定到绑定源和绑定源的数据网格视图数据源是实体框架的表.
当我使用实体框架时,我不能使用绑定源的筛选器和data-grid-view的按列排序,但是当我不使用实体框架时,我可以使用它们.
如何将它们与实体框架一起使用?
我的代码在窗体加载时是
contex = new myEntity();
myBindingSource.DataSource = contex.myTable;
解决方法:
每个BindingSource都有一个属性SupportsFiltering(和SupportsSorting).如果将entitySet设置为DataSource,则这两个属性将自动设置为false!因此,有一些可能的解决方案.您可以为IEnumberable< T>提供扩展方法.如here所示,或者您选择使用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也是如此.
标签:bindingsource,c,entity-framework 来源: https://codeday.me/bug/20191031/1979720.html