我有以下两个问题
List<User> allUsers= dbContext.Users.ToList();
List<User> topTenUsers = dbContext.Users.Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
它们是实例类的属性,它们都加载数据,如下面的代码:
using (var dbContext = new fooDataObjects.DataContext()) {
//...they are loaded here
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试从allUsersi 访问结果集合时,会得到一个异常,上面写着"无法访问已处置的对象".但是我可以从中访问结果集合topTenUsers.
Take()强制LINQ枚举我可以从第二个集合中获得结果的结果元素吗?
Take() 它本身不会导致基础序列的枚举.
但是,.ToList()你有那里将导致它被枚举(虽然在你的示例中只有前10个元素).
我认为你在不使用的情况下获得例外的原因Take(10)是因为前10个之后的一个对象已被处理,但前10个中没有一个被处置掉.
因此,只有完整列表包含已处置的对象; 部分清单很好.
| 归档时间: |
|
| 查看次数: |
657 次 |
| 最近记录: |