Entity framework 实体框架4.1';s.Local().ToBindingList(),如何过滤?

Entity framework 实体框架4.1';s.Local().ToBindingList(),如何过滤?,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,示例模型:客户->订单 contex.Order.Load(); orderBindingSource.DataSource = context.Order.Local().ToBindingList(); 那么,如何过滤呢?e、 g.context.Order.Where(m=>m.customerID>1) 我希望获得与本地属性返回的ObservableCollection保持同步的BindingList实现 您是否尝试过使用select contex.Order.Load(); orde

示例模型:客户->订单

contex.Order.Load();
orderBindingSource.DataSource = context.Order.Local().ToBindingList();
那么,如何过滤呢?e、 g.
context.Order.Where(m=>m.customerID>1)


我希望获得与本地属性返回的ObservableCollection保持同步的BindingList实现

您是否尝试过使用select

contex.Order.Load();
orderBindingSource.DataSource = 
   context.Order.Local().Select( m => m.customerID > 1).ToBindingList();
编辑

对此并不完全确定,它可以编译,但我没有一个完整的环境来测试它。如果您尝试加载特定的数据,然后您可以在本地为绑定列表访问它。像这样:

context.Order.Select( m => m.customerID > 1).Load();
orderBindingSource.DataSource = 
   context.Order.Local.ToBindingList();
我认为这是最好的办法。 正在使用load,您可以查看详细信息 您可以使用Load或best loadAsync,如示例所示

    dbContext.Order.Where(m=>m.customerID > 1).LoadAsync().ContinueWith(loadTask =>
        {
            // Bind data to control when loading complete
            orderBindingSource.DataSource = dbContext.Order.Local.ToBindingList();
          

        }, System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext());

正确的。。。这很棘手,因为
.Where
会生成一个
IQueryable
,因为它不再是
DBSet
,所以不能对其调用
.Local
。您打算如何在有限的数据集上使用
.Local
?它不能仅用于整个
DBSet
s,对吗?据我所知,这在最新的EF4上仍然是一个问题,MSDN文档也没有帮助。不幸的是,
Select
就像
Where
——它不支持
ToBindingList
,因为它返回的是
IEnumerable
,而不是
observedcollection
。你的意思是“context.Order.Where”(m=>m.customerID>1).Load();“?这基本上就是现有答案所做的。这不再是处理异步方法的方式。