簡體   English   中英

如何從一個表中獲取所有記錄並基於每個記錄獲取與 mvc 5 中第一個表記錄關聯的所有記錄

[英]how to get all records from one table and based on that each record fetch all records which associated to the first table records in mvc 5

我想從一個名為 Visitor 的表中獲取所有記錄,我還有另一個名為 booking_visitor 的表

我的訪客表

游客

VisitorId VisitorName 電子郵件 電話 照片

預訂_訪客

BookingId Fk VisitorId Fk

我想從 visitor 表中獲取所有記錄,並基於 Booking_visitor 表中存在的每個 id 獲取具有 VisitorId 值的每個記錄

如果第一條記錄的 VistorId 為 1,並且該 ID 在 Booking_visitor 表中出現三次,對於 visitorid = 1,它應該在該記錄下方顯示三個記錄

我已經嘗試過我的邏輯,但似乎我沒有得到正確的結果可能是我的控制器代碼錯誤或我的剃刀視圖錯誤

這是我試過的

   var visitor= db.Fetch<Visitor>("Select VisitorId,VisitorName from Visitors");

        foreach (var vs in Visitors)
        {
            ViewBag.VisitorsAmount= db.Query<Bookingvw>("select b.BookingId,bd.BookingDetailId,v.VisitorId,v.VisitorName,bd.CheckIn,bd.CheckOut from Booking_visitor bv " +
           "inner join Booking b on b.BookingId= bv.BookingId" +
           "inner join Visitors v on v.VisitorId= bv.VisitorId" +
           $"inner join BookingDetails bd on bd.BookingId= b.BookingId where v.VisitorId= {vs.VisitorId} ");
            "group by b.BookingId, bd.BookingDetailId, v.VisitorId, v.VisitorName, bd.CheckIn, bd.CheckOut ");*/

        }
        return View(visitor);


 @model IEnumerable<Visitors>
  @foreach (var item in Model)
        {
            <tr>
                <td>@item.VisitorName</td>
            </tr>

        }
            <tr>
                @{
                    var vsamt = (IEnumerable<Bookingvw>)ViewBag.VisitorsAmount;
                }
                <th>
                    Booking Id
                </th>
                <th>
                    Check In
                </th>
            </tr>


            @foreach (var item2 in vsamt )
            {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item2.BookinId)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item2.CheckIn)
                </td>
            </tr>
            }

        }

我想要第一個訪問者的分層結果是否有任何結果然后在第一個訪問者下方顯示該結果

根據訪問者的數量進行第二次查詢的次數非常昂貴。
我要做的是獲取所有訪客(就像你所做的那樣),然后獲取所有 Bookingvw(攜帶bv.VisitorId信息)但沒有子句v.VisitorId = {vs.VisitorId} 所以 2 個查詢 - 2 個列表。
然后在 cshtml 而不是(IEnumerable<Bookingvw>)ViewBag.VisitorsAmount中,您可以使用以下(IEnumerable<Bookingvw>)ViewBag.VisitorsAmount.Where(x => x.VisitorId == item.VisitorId)

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM