使用实体框架过滤BindingSource

时间:2011-01-30 09:03:59

标签: entity-framework-4 filtering bindingsource

您好
如何过滤结果存在于填充实体的BindingSource中(使用EF 4)?
我试过这个: mybindingsource.Filter = "cityID = 1"
但似乎绑定源与实体框架不支持过滤..我是对吗?是否有另一种方法来过滤(搜索)绑定源中的数据。

PS:
- 我正在使用Windows应用程序而不是ASP.NET - 我正在使用列表框来显示结果。

感谢名单

3 个答案:

答案 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>;

这样您就可以保留原始列表(从上下文中检索一次),然后使用此原始列表在内存中进行查询(无需来回查看数据库)。这样,您就可以对原始列表执行各种查询。