Linq 2 таблицы объединяются, но нужны данные из 3, не нужно объединять все 3 - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть 3 таблицы, мне нужно получить данные из скважины, фактически только 2, которые мне нужны для объединения, с которым я знаю, используя Linq, но мне нужно имя проекта из проектируемого, и мне нужно вставить его вту же модель я создаю с помощью linq.Я пытался из proj в контексте. Проекты, где proj.ProjectId = detail.ProjectId, но он говорит, что не может преобразовать int в bool, и у меня нигде не объявлено bool?Вот мой linq.И весь метод на самом деле

PS - это мое самое обновленное действие, которое я создал, но все еще не на 100% правильно, но при этом у вас есть правильная идея получить данные 3 таблиц?

     public ActionResult DisplayAllTimeSheetDetails(int masterid)
        {
            var masterModel = context.TimeSheetMaster.Where(w => 
                              w.TimeSheetMasterId.Equals(masterid)).FirstOrDefault();

            var detailM = context.TimeSheetDetails.Where(t => 
                          t.TimeSheetMasterId.Equals(masterModel.TimeSheetMasterId))
                          .FirstOrDefault();

            var project = context.Projects.Where(p => p.ProjectId.Equals(
                          detailM.ProjectId)).FirstOrDefault();


            var details = (from master in context.TimeSheetMaster
                           join detail in context.TimeSheetDetails
                           on master.TimeSheetMasterId equals detail.TimeSheetMasterId
                           //from proj in context.Projects where proj.ProjectId = detail.ProjectId
                           select new TimeSheetDetailsModel()
                           {
                               Sunday = detail.Sunday,
                               Monday = detail.Monday,
                               Tuesday = detail.Tuesday,
                               Wednesday = detail.Wednesday,
                               Thursday = detail.Thursday,
                               Friday = detail.Friday,
                               Saturday = detail.Saturday,
                               Hours = detail.Hours,
                               Comment = master.Comment,
                               ProjectName = project.ProjectName
                           }).ToList();

            return View(details);
        }
public class TimeSheetDetailsModel
    {
        [Display(Name = "Time Sheet ID")]
        public int TimeSheetId { get; set; }
        [Display(Name = "Day of Week")]
        public string DaysOfWeek { get; set; }
        [Display(Name = "Hours")]
        public int? Hours { get; set; }
        [Display(Name = "Period")]
        public string Period { get; set; }
        [Display(Name = "Project ID")]
        public int ProjectId { get; set; }
        [Display(Name = "User ID")]
        public string UserId { get; set; }
        [Display(Name = "Date Created")]
        public DateTime DateCreated { get; set; }
        [Display(Name = "Time Sheet Master ID")]
        public int TimeSheetMasterId { get; set; }
        [Display(Name = "Project Name")]
        public string ProjectName { get; set; }
        public string Comment { get; set; }
        public int Sunday { get; set; }
        public int Monday { get; set; }
        public int Tuesday { get; set; }
        public int Wednesday { get; set; }
        public int Thursday { get; set; }
        public int Friday { get; set; }
        public int Saturday { get; set; }
    }

1 Ответ

0 голосов
/ 15 апреля 2019

У меня получилось так.Я открыт для других ответов и более чистого способа сделать это.

public ActionResult DisplayAllTimeSheetDetails(int masterid)
            {
            var masterModel = context.TimeSheetMaster.Where(w => 
                              w.TimeSheetMasterId.Equals(masterid)).FirstOrDefault();

            var detailM = context.TimeSheetDetails.Where(t =>
                          t.TimeSheetMasterId.Equals(masterModel.TimeSheetMasterId)).FirstOrDefault();//.ToList();

            var project = context.Projects.Where(p => p.ProjectId==detailM.ProjectId).FirstOrDefault();


            var details = (from master in context.TimeSheetMaster
                           join detail in context.TimeSheetDetails
                           on master.TimeSheetMasterId equals detail.TimeSheetMasterId
                           select new TimeSheetDetailsModel()
                           {
                               Sunday = detail.Sunday,
                               Monday = detail.Monday,
                               Tuesday = detail.Tuesday,
                               Wednesday = detail.Wednesday,
                               Thursday = detail.Thursday,
                               Friday = detail.Friday,
                               Saturday = detail.Saturday,
                               Hours = detail.Hours,
                               Comment = master.Comment,
                               ProjectName = project.ProjectName
                           }).FirstOrDefault();

            return View(details);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...