使用实体框架过滤BindingSource
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用实体框架过滤BindingSource相关的知识,希望对你有一定的参考价值。
你好
如何在填充实体的BindingSource中使用过滤结果(使用EF 4)?
我试过这个:mybindingsource.Filter = "cityID = 1"
但似乎绑定源与实体框架不支持过滤..我是对吗?是否有另一种方法来过滤(搜索)绑定源中的数据。
PS: - 我正在使用Windows应用程序而不是ASP.NET。 - 我正在使用列表框来显示结果。
感谢名单
答案
也许比列昂尼德更好:
private BindingSource _bs;
private List<Entity> _list;
_list = context.Entities;
_bs.DataSource = _list;
现在需要过滤时:
_bs.DataSource = _list.Where<Entity>(e => e.cityID == 1).ToList<Entity>;
这样您就可以保留原始列表(从上下文中检索一次),然后使用此原始列表在内存中进行查询(无需来回查看数据库)。这样,您可以对原始列表执行各种查询。
另一答案
我想,你在语法上犯了错误。您应该像这样编写Filter:
mybindingsource.Filter = "cityID = '1'"
另一种方法是使用LINQ表达式。
(关于LINQ)为什么你必须再次调用Entity?
简单方案:
public List<object> bindingSource;
public IEnumerable FiltredSource
{
get{ return bindingSource.Where(c => c.cityID==1);
}
另一答案
.where (Function (c) c.cityID = 1)
以上是关于使用实体框架过滤BindingSource的主要内容,如果未能解决你的问题,请参考以下文章
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段