您好
如何过滤结果存在于填充实体的BindingSource中(使用EF 4)?
我试过这个:
mybindingsource.Filter = "cityID = 1"
但似乎绑定源与实体框架不支持过滤..我是对吗?是否有另一种方法来过滤(搜索)绑定源中的数据。
PS:
- 我正在使用Windows应用程序而不是ASP.NET
- 我正在使用列表框来显示结果。
感谢名单
答案 0 :(得分:0)
我认为,你在语法上犯了错误。您应该像这样编写过滤器:
mybindingsource.Filter = "cityID = '1'"
另一种方法是使用LINQ表达式。
(关于LINQ) 你为什么要再打电话给Entety?
简单的解决方案:
public List<object> bindingSource;
public IEnumerable FiltredSource
{
get{ return bindingSource.Where(c => c.cityID==1);
}
答案 1 :(得分:0)
.where (Function (c) c.cityID = 1)
答案 2 :(得分:0)
也许比列昂尼德更好:
private BindingSource _bs;
private List<Entity> _list;
_list = context.Entities;
_bs.DataSource = _list;
现在需要过滤时:
_bs.DataSource = _list.Where<Entity>(e => e.cityID == 1).ToList<Entity>;
这样您就可以保留原始列表(从上下文中检索一次),然后使用此原始列表在内存中进行查询(无需来回查看数据库)。这样,您就可以对原始列表执行各种查询。