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();“?这基本上就是现有答案所做的。这不再是处理异步方法的方式。