处理上下文后的查询

时间:2013-07-02 19:45:37

标签: c# entity-framework

我在我的数据层中使用它

public static IQueryable<Permission> ListAll()
{
    using (InventorySystemEntities context = new InventorySystemEntities(new ConfigurationManager().ConnectionString))
    {
        IQueryable<Permission> result = context.Permissions;
        return result;
    }
}

它应该将所有行放在结果变量中。然而,做这样的事情,它将导致上下文已被处理..

permissionList = PermissionModel.ListAll();
chkListGeneral.DataSource = permissionList.Where(p => p.Parent == "General");

有没有办法在没有上下文的情况下过滤IQueryable?

1 个答案:

答案 0 :(得分:0)

只有包装它的上下文才能访问该连接。您的方法返回IQueryable,因此过滤器正在尝试&#34;翻译&#34;到数据库查询,但基础查询提供程序不再存在。您需要在上下文仍然存在时指定where条件,或强制执行加载(例如,通过调用ToList()变量上的result),返回IEnumerable并在内存中过滤结果。