我有一些代码:
使用(var userlookup = new UserLookup()) { someThing = someCollection .选择(t => { var user = userLookup.UserLookup(t.UserId); 返回新包装器 { UserString = string.Format("{0} {1} ({2})", user.FirstName, user.LastName, t.UserId), SomeOtherProperty = t.SomeFunction() ETC.. }; }); }
当someThing
被访问时,我得到一个ObjectDisposedException
. 这可以通过删除 using 块来解决。如果我这样做:
UserLookup
当 Linq 可枚举被释放时会被释放吗?- 如果是这样,这是怎么发生的?
- 有没有办法重新构造此代码以在处置
UserLookup
可枚举时处置实例同时仍保持延迟执行?
(我确定我可以在 using 块中调用 ToList() 并且它会正常工作,我可能会这样做,但只是出于好奇)
我还应该提到这someThing
是 MVC 视图模型上的一个属性。