使用实体框架过滤BindingSource

问题描述 投票:3回答:3

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

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

感谢名单

entity-framework-4 filtering bindingsource
3个回答
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>;

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


0
投票

我想,你在语法上犯了错误。您应该像这样编写Filter:

mybindingsource.Filter = "cityID = '1'"

另一种方法是使用LINQ表达式。

(关于LINQ)为什么你必须再次调用Entity?

简单方案:

    public List<object> bindingSource;
    public IEnumerable FiltredSource
    {
        get{ return bindingSource.Where(c => c.cityID==1);
    }

0
投票
.where (Function (c) c.cityID = 1)
© www.soinside.com 2019 - 2024. All rights reserved.