我的代码是这样的:
[HttpGet]
public List<User> GetUsers()
{
List<User> Users;
using (Entities db = new Entities())
{
var users = from u in db.Users select u;
Users = users.ToList();
}
//XXX
return Users;
}
我在 XXX 设置了一个断点,并确认该对象Users
仍然是用实际值实例化的。我不知道延迟加载实际上意味着什么,但肯定发生了一些加载。但我仍然收到此错误:
ObjectContext 实例已被释放,不能再用于需要连接的操作。
为什么会这样?该对象Users
是在 using 块之外声明的,所以垃圾收集器不应该跟踪该对象仍在使用中吗?
有什么办法来处理这个?
好的,我找到了原因。User 类有一个导航属性 PINS。我读到有一个 Include 方法。但此特定方法不需要 PINS 属性。是否有一个排除方法?
我在 return 语句之前尝试了以下操作,但仍然存在相同的错误。
foreach (var user in Users) user.PINS = null;