【发布时间】:2012-04-12 08:38:48
【问题描述】:
我有一个层次结构的类,我通过 LINQ to SQL 控制器从数据库中获取,并根据需要显示那个大类。让我解释一下:
BigProduct
IEnumerable<Review>
//...some generic types
Review
IEnumerable<Comment>
//...some generic types
Comment
//...some generic types
所以在我的控制器中,我获取大产品并将其传递给主视图,然后将 foreach 中的评论传递给部分视图,在每个部分视图中,我都有另一个 foreach 应该将所有 cmets 列为部分视图。
类型在类中被明确定义为 Ienumerable,并且此 dll 在 Web 表单中运行良好,现在当我将鼠标悬停在 razor 的 foreach 循环中的 Comment 上时,它说它是 EntitySet 而不是 IEnumerable,并且我得到“空异常:访问的上下文处置后”,这就是我首先将它作为 IEnumerable 传递的原因,因为我将所有内容都放在一个地方。这种行为的原因可能是什么?我没有更改这个 dll 中的任何内容,这些内容过去可以与 web 表单一起正常工作。
更新:正如我提到的,它在 WebForms 上运行良好,我在选择数据时调用 .ToList() 从 IQueryable 中获取 IEnumerable!
【问题讨论】:
标签: c# asp.net linq-to-sql asp.net-mvc-4