Linqを使用してTicketSubscriptionモデルからすべてのチケット(ticketIds)を購読し、それらのIDをすべてチケットモデルにプラグインするコードがありますチケットのすべての情報を取得します。私は3つのステップでこれをやってみました。まず、UserIdをプルします。次に、ユーザーが購読しているすべてのIDを取得し、最終的にチケットのすべての情報を取得します。最初の2つの部分は正しいように見えますが、3つの部分はリストに表示されません。ここで私がしようとしていたコードです。Linqを使用して、別のモデルからフィルタリングされたリストを使用してモデルを取得する
var userID = db.Users.Where(u => u.NTUserName == User.Identity.Name).Select(u => u.UserId).Single();
var SubscribedIds = new HashSet<Guid>(db.TicketSubscriptions.Where(u => u.UserId == (userID)).Select(u => u.TicketId));
var SubscibedList = from ticket in db.Tickets
join TicketId in SubscribedIds on ticket.TicketId equals TicketId
select *;
return View("SubscribedTickets", SubscibedList.ToPagedList(page, Properties.Settings.Default.PageSize));
私は、私はそれに対応するために持っているいくつかの異なるコードを変更しようとしましたが、私は2つをマージする方法を見つけ出すことはできません。ここで私はマージしようとしたコードは次のとおりです。
return db.Tickets
.Include(t => t.TicketNotes)
.Where(t => t.OpenUser.NTUserName == u).Where(t => t.TicketStatusId == ticketStatusId)
.OrderByDescending(t => t.TicketNumber)
.ToList();
私は含まt.ticketNotesを持っているとticketStatusIdにこの時間をフィルタリングする必要があります。私はこのような何かを行うことによって同様のクエリを達成しました