如何显示两个表的搜索结果?

时间:2015-07-04 11:08:53

标签: c# asp.net-mvc linq

我想发送一个查询来查看 我的结果是从两张表中获得的。

var ticketPrice = from _ticketPrice in db.tbl_Concert_Hall_Floor_Place_TicketPrice
                          join _showtime in db.tbl_Concert_Showtime on _ticketPrice.ShowtimeID equals _showtime.ShowtimeID
                          join _concertHall in db.tbl_Concert_ConcertHall on _showtime.ConcertHallID equals _concertHall.ConcertHallID
                          join _concert in db.tbl_Content_Context on _concertHall.ContextID equals _concert.ContextID
                          where _concert.EnContextID == concertid
                          select new
                          {
                              _ticketPrice,
                              Showtime = _showtime.StartDate + " - ساعت " + _showtime.StartTime.ToString().Substring(0, 5) + "  الی    " + _showtime.EndTime.ToString().Substring(0, 5)

                          };

如何在视图中显示查询?

2 个答案:

答案 0 :(得分:3)

我建议不要使用动态。正确的方法是创建一个viewmodel。

public class TicketPriceViewModel
{
    public decimal  TicketPrice { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
}

然后,您可以使用viewmodel选择:

var ticketPrice = from _ticketPrice in db.tbl_Concert_Hall_Floor_Place_TicketPrice
    join _showtime in db.tbl_Concert_Showtime on _ticketPrice.ShowtimeID equals _showtime.ShowtimeID
    join _concertHall in db.tbl_Concert_ConcertHall on _showtime.ConcertHallID equals _concertHall.ConcertHallID
    join _concert in db.tbl_Content_Context on _concertHall.ContextID equals _concert.ContextID
    where _concert.EnContextID == concertid
    select new TicketPriceViewModel
    {
        TicketPrice = _ticketPrice,
        StartDate = _showtime.StartDate,
        StartTime = _showtime.StartTime,
        EndTime = _showtime.EndTime
    };

将viewmodel传递给您的视图:

return View(ticketPrice);

在您的视图中使用该模型:

@model IEnumerable<TicketPriceViewModel>

// Example
@foreach (var ticket in Model)
{
    <span>Starting time: @ticket.StartDate - ساعت @ticket.StartTime.ToString().Substring(0, 5)  الی   @ticket.EndTime.ToString().Substring(0, 5)</span>
}

答案 1 :(得分:0)

我记得以前我被困在这种情况中。我在视图中使用动态模型解决了它。

尝试在视图中将模型声明为动态,如下所示:

Route::get('/{profile_url?}', array('as' => 'profile', 'uses' => 'ProfileController@getProfile')
->except('settings', 'logout'));

然后您可以访问匿名类型的数据字段。希望这可以提供帮助。