编程语言
首页 > 编程语言> > C#-在Entity Framework中使用bindingSource的筛选器

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