ich eine ASP.NET MVC 2 Aktion haben, die wie folgt aussieht:Umgebung "Datacontext zugegriffen nach Entsorgen" Fehler in ASP.NET MVC-Ansicht
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
});
}
}
Die Ansicht enthält den folgenden Code:
<%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>
<% } %>
Ich greife auf item.PostTags
, die durch meine DataContext erhalten wird. Hier verwende ich im Wesentlichen Lazy-Loading, aber ich bekomme einen Fehler: mein DataContext ist bereits entsorgt, wenn es Zeit ist, diese PostTags aufzulisten.
Wie kann ich solche Daten laden, bevor mein DataContext entsorgt wird?
Don verwenden Entsorgen Sie den DataContext nicht. Siehe http://leedumond.com/blog/about-disposing-the-datacontext/ und http://stackoverflow.com/questions/821574/c-linq-to-sql-should-datacontext-be-disposed-using-using- idisposable –