gpt4 book ai didi

c# - IQueryable 在使用后被释放

转载 作者:太空狗 更新时间:2023-10-29 20:08:29 26 4
gpt4 key购买 nike

我有一些短代码,如下所示:

public static IQueryable<User> SelectFromEmployee(int employee)
{
using (var ctx = Database.AccountingContext())
{
return ctx.Users.Where(c => c.Employee_FK == employee);
}
}

如果我只保留此代码并使用结果,我会收到异常,告诉我数据已处理。但如果我这样做:

public static IEnumerable<User> SelectFromEmployee(int employee)
{
using (var ctx = Database.AccountingContext())
{
return ctx.Users.Where(c => c.Employee_FK == employee).ToList();
}
}

一切正常。但我的问题是我想使用需要 IQueryable 的 Linq Dynamic。有什么方法可以返回本地 IQueryable 以便我可以继续使用它吗?

最佳答案

您需要选择:

  1. 不处理上下文(不使用 using 语句)并获取 IQueryable<User> ,这依赖于数据库。
  2. 处理上下文并获取IQueryable<User>通过ToList().AsQueryable() ,这依赖于内存。

请注意,重要的一点是数据通过延迟加载的位置。

关于c# - IQueryable 在使用后被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com