Ошибка с моим кодом тот же идентификатор, но несколько в 2-й таблице, как получить каждый отдельный - PullRequest
0 голосов
/ 23 апреля 2019

Таким образом, у меня есть пользователь, который может создавать несколько расписаний одновременно, если пользователь создает расписание и создает более 1 проекта за один раз, он будет создавать отдельные детали расписаний для каждого проекта, но все они будут иметь одного и того же мастера расписаний.Как я могу специально выбрать каждый график, если пользователь нажимает на каждый из них в отдельности.Прямо сейчас я использую firstordefault, и он выберет только первое, даже если вы нажмете на второе и попытаетесь получить подробности второго, возможно, у меня возникла небольшая проблема, объясняющая это, и, возможно, у меня возникла проблема с дизайном в моемпосмотреть, но вот мой код, он имеет список всех записей, но может выбрать только 1, если более 1 имеет один и тот же masterID, но каждый detailId отличается.

//GET: /TimeSheet/UserTimeSheets/{id}
        public async Task<ActionResult> UserTimeSheets(string id)
        {
            var userTimeSheets = (from times in context.TimeSheetMaster
                                  where times.UserId == id
                                  select new TimeSheetMasterModel()
                                  {
                                      TimeSheetMasterId = times.TimeSheetMasterId,
                                      FromDate = ((DateTime)times.FromDate),
                                      ToDate = ((DateTime)times.ToDate),
                                      TimeSheetStatus = times.TimeSheetStatus,
                                      TotalHours = times.TotalHours,
                                      Comment = times.Comment,
                                      DateCreated = ((DateTime)times.DateCreated),
                                      UserId = times.UserId.ToString(),
                                      IdShortened = times.UserId.Substring(0,10)
                                  });
            if (userTimeSheets == null)
                return HttpNotFound();

            return View(await userTimeSheets.ToListAsync());
        }
        //GET: /TimeSheet/UserTimeDetails/{uid}{tid}
        public async Task<ActionResult> UserTimeDetails(string uid, int tid)
        {
            var tmaster = await context.TimeSheetMaster.Where(t =>
                          t.TimeSheetMasterId == tid).FirstOrDefaultAsync();
            var tdetail = await context.TimeSheetDetails.Where(t => 
                          t.TimeSheetMasterId == tmaster.TimeSheetMasterId).FirstOrDefaultAsync();
            var project = await context.Projects.Where(p => 
                          p.ProjectId == tdetail.ProjectId).FirstOrDefaultAsync();

            var userTimeDetails = (from t in context.TimeSheetMaster
                                   join d in context.TimeSheetDetails
                                   on t.TimeSheetMasterId equals d.TimeSheetMasterId
                                   where t.UserId == uid
                                   select new TimeSheetDetailsModel()
                                   {
                                       TimeSheetMasterId = t.TimeSheetMasterId,
                                       Sunday = d.Sunday,
                                       Monday = d.Monday,
                                       Tuesday = d.Tuesday,
                                       Wednesday = d.Wednesday,
                                       Thursday = d.Thursday,
                                       Friday = d.Friday,
                                       Saturday = d.Saturday,
                                       Hours = t.TotalHours,
                                       ProjectName = project.ProjectName,
                                       ProjectId = project.ProjectId,
                                       UserId = t.UserId,
                                       Comment = t.Comment
                                   });
            if (userTimeDetails == null)
                return HttpNotFound();

            return View(await userTimeDetails.FirstOrDefaultAsync());
        } 
<td>
                                @Html.ActionLink("Details", "UserTimeDetails", 
                                 new { uid = item.UserId, tid = item.TimeSheetMasterId }, 
                                 new { @class = "btn btn-info" })
                            </td>
...