【发布时间】:2021-02-04 13:54:18
【问题描述】:
我是 Entity Framework 的新手,很难弄清楚我做错了什么。 在普通 SQL 数据库上使用 ASP.Net MVC、C# 和 EF6。
这是我的控制器代码。
using (var context = new MyEntities())
{
var result = context.Streamers.OrderBy(x => x.AddedDate);
foreach (var item in result)
{
var linkResult = context.Links.Where(x => x.StreamerId == item.Id);
item.Links = linkResult.ToList();
}
return View(result.ToList());
}
这是我的观点
@{int i = 0;}
@foreach (var streamer in Model)
{
var className = i % 2 == 0 ? "col-lg-6 order-lg-2" : "col-lg-6";
var className2 = i % 2 == 0 ? "col-lg-6 order-lg-1" : "col-lg-6";
i++;
<section>
<div class="container">
<div class="row align-items-center">
<div class="@className">
<div class="p-5">
<a href="@streamer.StreamerUrl" target="_blank">
<img class="img-fluid rounded-circle" src="@streamer.StreamerImage" alt="@streamer.StreamerName">
</a>
</div>
</div>
<div class="@className2">
<div class="p-5">
<a href="@streamer.StreamerUrl" target="_blank">
<h2 class="display-4">@streamer.StreamerName</h2>
</a>
<p>@streamer.StreamerDescription</p>
<ul>
@foreach (var link in streamer.Links)
{
<li><a href="@link.LinkAddress" target="_blank">@link.LinkName</a></li>
}
</ul>
</div>
</div>
</div>
</div>
</section>
}
代码在 for each for streamer.Links 上出错
System.ObjectDisposedException: 'The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.'
谁能帮我弄清楚我在这里做错了什么?有没有更简单的方法可以做到这一点? 提前致谢
【问题讨论】:
-
LinkAddress 是一个简单的属性(字符串)还是一个导航(存储在另一个表中)?
-
存储在另一个表中。
标签: c# asp.net-mvc entity-framework