其中,上下文已被释放后的查询
本文关键字:查询 释放 上下文 其中 | 更新日期: 2023-09-27 18:20:43
我在数据层中使用这个
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?
只有包装该连接的上下文才能访问该连接。您的方法返回IQueryable
,因此筛选器正试图"转换"为DB查询,但基础查询提供程序已不存在。您需要在上下文仍然存在的情况下指定where条件,或者强制加载(例如,通过对result
变量调用ToList()
),返回IEnumerable
并在内存中过滤结果。