【发布时间】:2010-11-25 00:27:10
【问题描述】:
我有一个如下所示的 ASP.NET MVC 2 操作:
public ActionResult Index()
{
using(var db = new MyDataContext())
{
var welcomeSnippet = "test";
var articles = db.Posts.Where(p => p.DateOfPublish <= DateTime.Now).Take(5).ToList();
return View(new HomeViewModel()
{
Articles = articles,
WelcomeSnippet = welcomeSnippet
});
}
}
视图包含以下代码:
<%foreach (var item in Model.Articles)
{%>
<div class="article" id="<%=item.PostID %>">
<!-- some properties -->
<div class="tags">tags: <i><%foreach (var tag in item.PostTags.ToList())
{ %><%=Html.Encode(tag.Tag.TagName.Trim())%> <%} %></i>
</div>
</div>
<% } %>
我正在访问item.PostTags,它是通过我的DataContext 获得的。在这里,我本质上是在使用延迟加载,但我遇到了一个错误:在列出这些 PostTag 时,我的 DataContext 已经被释放了。
如何在处理我的 DataContext 之前加载此类数据?
【问题讨论】:
标签: c# asp.net asp.net-mvc linq-to-sql datacontext