我有一個ViewModel和我當前返回一個查詢,如果電影有僱員,他們有一個角色那麼該電影,演員和角色都是回。添加額外的查詢返回(查看)
現在我想添加一個額外的查詢,使string
(或任何效果最好)的同一部電影中的所有員工。所以如果三個人在同一部電影中,我想要一個列表,以便我可以在我的視圖中調用它。
我當前的查詢/ 控制器是
var parameter = Int32.Parse(Filter);
var queryString =
from m in db.Movies
join me in db.MovieEmployees
on m.ID equals me.movieID
join e in db.Employees
on me.employeeID equals e.ID
join r in db.Roles
on me.roleID equals r.ID
where (parameter == 1 && m.Name.Contains(searchString)) ||
(parameter == 2 && e.Name.Contains(searchString)) ||
(parameter == 3 && r.RoleType.Contains(searchString))
select new StarringViewModel { employeeID = e.ID, movieID = m.ID, roleID = r.ID,
movieName = m.Name, movieDescription = m.Description,
movieReleaseDate = m.ReleaseDate, employeeBirthdate = e.Birthday,
employeeName = e.Name, Role = r.RoleType };
return View(queryString.Distinct().ToList().OrderBy(x => x.movieName));
而且它看起來像這樣
看我怎麼有「有史以來最偉大的電影」兩名員工,我想回到那個名單在我的電影下面有employeeList
這個是我的Model,ViewModel和DB layo UT。
型號
public class StarringViewModel
{
public int movieID { get; set; }
public int roleID { get; set; }
public int employeeID { get; set; }
public string movieName { get; set; }
public string movieDescription { get; set; }
public DateTime? movieReleaseDate { get; set; }
public string Role { get; set; }
public string employeeName { get; set; }
public DateTime employeeBirthdate { get; set; }
public string employeeList { get; set; } // <-- I want this to be the list of actors in same movies
}
查看
<table class="table table-striped table-hover table-responsive table-condensed">
<tr>
<th>
<h3 style="font-size: x-large; font-weight: bolder">Movie Name</h3>
</th>
<th>
<h3 style="font-size: x-large; font-weight: bolder">Release Date</h3>
</th>
<th>
<h3 style="font-size: x-large; font-weight: bolder">Employee</h3>
</th>
<th>
<h3 style="font-size: x-large; font-weight: bolder">@Html.DisplayNameFor(model => model.Role)</h3>
</th>
<th>
@using (Html.BeginForm("Index", "Starring"))
{
<div class="dropdown">
<select class="btn btn-group-lg btn-default col-md-4" style="margin-top: 15px; height: 36px; opacity: 1" data-toggle="dropdown" name="Filter">
<option value="0" disabled selected>Filter By...</option>
<option value="1">Movie Name</option>
<option value="2">Actor Name</option>
<option value="3">Role</option>
</select>
</div>
<input type="text" name="searchString" class="col-md-6" style="margin-top: 16px; text-align:center; height:35px; font-size:20px" placeholder="enter text" />
<button type="submit" class="btn btn-group-lg btn-primary col-md-2 glyphicon glyphicon-arrow-right" style="margin-top: 15px; height:36px; opacity:1" value="" />
}
</th>
@foreach (var item in Model)
{
<tr>
<td class="col-md-2">
<span style="font-size: 17px;">@Html.DisplayFor(modelItem => item.movieName)</span>
</td>
<td class="col-md-2">
<span style="font-size: 17px;">@Html.DisplayFor(modelItem => item.movieReleaseDate)</span>
</td>
<td class="col-md-1">
<span style="font-size: 17px;">@Html.DisplayFor(modelItem => item.employeeName)</span>
</td>
<td class="col-md-1">
<span style="font-size: 17px;">@Html.DisplayFor(modelItem => item.Role)</span>
</td>
<td class="col-md-3 col-md-offset-3">
</td>
</tr>
<tr>
<td colspan="12">
<p style="font-size: 17px; font-style: italic; font-family: 'Roboto', sans-serif">
Movie ID: @Html.DisplayFor(modelItem => item.movieID)
<br />
Description: @Html.DisplayFor(modelItem => item.movieDescription)
<br />
Starring: // ADD LIST OF EMPLOYEES HERE (item.employeeList)
</p>
</td>
</tr>
}
</table>
圖
如果需要任何額外的信息,請讓我知道。
謝謝!
'StarringViewModel'中'employeeName'和'employeeList'有什麼區別?視圖模型與MovieEmployees具有相同的多樣性,但employeeList具有Movie的多樣性。所以看起來你需要每部電影一個視圖模型,但是,如何爲每部電影選擇一個'employeeName'? –
那麼每個員工都可以有一個角色,並在電影中。但是這些關係是1比1.如果該員工有兩個角色,他們實際上在數據庫中有兩個實例。但是對於這種情況,可以說我在一部名爲「SO」的電影中有6名員工。現在,該表格將打印六行,每個員工(和他們的角色)都會在電影標題中顯示同一部電影。所以我希望能夠收集一個列表/字符串/任何每個員工與類似的電影。所以電影中的每個人「SO」以及電影「SO2」中的每個人都是這樣,以便我可以調用該變量並將其顯示在我的View中。有道理? – Austin