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