Linq 2 表加入但需要来自 3 的数据不需要加入所有 3

Linq 2 tables join but need data from 3 not needing to join all 3

我有 3 个表我需要从井中获取数据实际上只有 2 个我需要做一个连接,我知道使用 Linq 但是我需要一个项目的名称从项目中我需要将其插入到我使用 linq 创建的同一模型中。我在 context.Projects 的 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; }
    }

我是这样工作的。我对其他答案和更简洁的方法持开放态度。

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);
        }