【发布时间】:2019-06-03 14:56:14
【问题描述】:
我正在创建一个关于电影、连续剧和演员的 ASP.NET MVC 程序。我对这个问题的目标是在我的视图中添加一个参数来回答“哪些演员参与了这部电影/系列?”的问题。和“这位演员参演了哪些电影/连续剧?” (基本上,当我点击演员的详细信息时,我希望它出现在他参与的电影中,对于电影,我想显示哪些演员参与了它。
为此,我在演员和电影以及演员和剧集之间创建了一个表,称为 Movies Participated 和 Series Participated
这些是我的桌子:
--Movies Table
MoviesData (
MoviesID int PK,
MoviesName varchar(50),
MoviesDescription text,
MoviesCategory varchar(50),
MoviesYear varchar(4));
--Series Table
SeriesData (
SeriesID int PK,
SeriesName varchar(50),
SeriesDescription text,
SeriesCategory varchar(50),
SeriesYear varchar(4));
--Actors Table
ActorsData (
ActorID int PK,
ActorName varchar(50),
ActorAge varchar(3))
--SeasonsnEpisodes
SeasonsEpisodes (
SeasonsEpisodesId in PK,
SeriesID int FK,
SerieSeasons int,
SerieEpisodes int)
--MoviesParticipated
MoviesParticipated (
MoviesParticipationId int PK
ActorID int FK
MovieID varchar(50) FK )
--SeriesParticipated
SeriesParticipated (
SeriesParticipationId int PK
ActorID int FK
SeriesID varchar(50) FK)
但现在我被困住了。我不知道我应该做一个查询还是别的什么。
编辑:
控制器详细信息:
public ActionResult Details()
{
PAPEntities db = new PAPEntities();
SeriesViewModel[] SeriesVM = db.SeriesData.Select(serie => new SeriesViewModel
{
SerieID = serie.SerieID,
SerieName = serie.SerieName,
SerieCategory = serie.SerieCategory,
SerieDescription = serie.SerieDescription,
SerieYear = serie.SerieYear
}).ToArray();
return View(SeriesVM);
}
视图模型:
public class SeriesViewModel
{
public int SerieID { get; set; }
public string SerieName { get; set; }
public string SerieCategory { get; set; }
public string SerieDescription { get; set; }
public string SerieYear { get; set; }
}
Edit2(忘记添加视图):
<table class="table table-bordered table-responsive table-hover">
<tr>
<td><h5><b>Id da Série </b></h5></td>
<td><h5><b>Nome </b></h5></td>
<td><h5><b>Categoria</b></h5></td>
<td><h5><b>Descrição</b></h5></td>
<td><h5><b>Ano de Lançamento</b></h5></td>
<td><h5><b>Episódios</b></h5></td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.SerieID</td>
<td>@item.SerieName</td>
<td>@item.SerieCategory
<td>@item.SerieDescription</td>
<td>@item.SerieYear</td>
<td>@Html.ActionLink("Temporadas e Episódios", "DetailsSeasonsNEpisodes")</td>
</tr>
}
</table>
【问题讨论】:
-
你认为“别的东西”会是什么?如果要从数据库中检索数据,请使用查询。您是在问应该如何进行查询?
-
你好@itsme86。 “别的东西”是一种表达方式,对不起。首先,我想知道查询。我已经尝试了很多,但我并没有真正找到一个好的解决方案,然后,我将如何在 MVC 中实现它
-
不确定这是否符合基于意见的,但至少不清楚你在问什么。我们如何在没有任何后续问题的情况下回答这个问题? “是的,做一个查询”
-
你好@Mackan。我昨天一整天都在研究一个查询,因为我不是最有经验的程序员,正如你已经注意到的那样。这是我的查询:SELECT m.*, a.* FROM Movie m INNER JOIN MovieParticipation mp ON mp.MovieID = m.MovieID INNER JOIN Actor a ON a.ActorID = mp.ActorID WHERE m.MovieID = 1。你能检查所以看看它是否正确?该查询的目标是列出电影中的所有演员。如果是,您能否向我解释如何在 MVC 中实现它以显示在详细信息视图中?我将编辑问题,以便向您解释我的视图和视图模型中的内容
-
是的,您需要查询。比普通 SQL 更好地使用 LINQ。也许以下教程可以帮助您:Accessing Your Model's Data from a Controller
标签: c# sql asp.net-mvc razor