[英]how to delete all records from the table using entityframework in mvc
[英]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.