【发布时间】:2017-01-07 03:39:17
【问题描述】:
我对 MVC 和实体框架非常陌生,我正在尝试遵循 asp.net 教程,但遇到了一个主要障碍。我有一个正确显示的表,但在表中显示外键而不是参考表中的数据。我想我想在这里使用急切加载,但我不确定在哪里放置我的包含。我相信 asp.net 上的教程适用于旧版本的 MVC。我知道我的包含应该放在下面的 sn-p 中。我正在尝试包括艺术家类型。
首先,我的模型类的一部分:
modelBuilder.Entity<tblArtist>()
.HasMany(e => e.tblArtisttblArtistType)
.WithRequired(e => e.tblArtist)
.WillCascadeOnDelete(false);
modelBuilder.Entity<tblArtist>()
.HasMany(e => e.tblIssueArtist)
.WithRequired(e => e.tblArtist)
.WillCascadeOnDelete(false);
modelBuilder.Entity<tblArtist>()
.HasMany(e => e.tblIssueAutograph)
.WithRequired(e => e.tblArtist)
.WillCascadeOnDelete(false);
modelBuilder.Entity<tblArtistType>()
.HasMany(e => e.tblArtisttblArtistType)
.WithRequired(e => e.tblArtistType)
.WillCascadeOnDelete(false);
还有我的控制器代码:
public class tblArtistsController : Controller
{
private joerdieComicsModel1 db = new joerdieComicsModel1();
// GET: tblArtists
public ActionResult Index()
{
return View(db.tblArtist.ToList());
}
// GET: tblArtists/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
tblArtist tblArtist = db.tblArtist.Find(id);
if (tblArtist == null)
{
return HttpNotFound();
}
return View(tblArtist);
}
我知道包含代码应该放在公共 ActionResult Index() 方法中,但我不知道它是如何完成的。
谢谢。
【问题讨论】:
-
您特别想急切加载/显示哪些信息/数据?
-
来自 tblArtistType 的艺术家类型以及现在显示的数据。这是艺术家表中的数据。
-
Artist 和 ArtistTypes 是如何连接的?您能否将这些类的相关部分添加到问题中。
-
我很高兴在我的问题中添加更多我的课程。但我认为它就在那里。不过我可能是错的。 Artist 和 ArtistType 通过 tblArtisttblArtistType 连接。该表具有 tblArtist 和 tblArtistType 的外键。这是否回答你的问题?对不起,如果我不清楚。
标签: c# asp.net asp.net-mvc entity