Как мне объединить две сущности в Entity Framework, используя лямбда-выражения? - PullRequest
0 голосов
/ 21 апреля 2019

0

Я новичок в Entity Framework.

Я использую абстрактный шаблон репозитория.

Смотрите, у меня есть 2 таблицы (сущности).

InspectionReport и Projects.

Поле идентификатора Проектов является внешним в InspectionReport.

Я успешно загрузил данные из InspectionReport, по отдельности. Но я хочу загрузить имя проекта из таблицы проектов по идентификатору проекта в InspectionReport.

Я пробовал это, но это не работает.

 public List<InspectionReport> GetInspectionReportListFiltered()
        {
            List<InspectionReport> InspectionReportList = new List<InspectionReport>();
            var query = uow.InspectionReportRepository.GetQueryable().AsQueryable();

            query = ququery.Join(uow.ProjectsRepository.GetQueryable().AsQueryable(), InspectionRep => InspectionRep.ProjectID, project => project.ID, (InspectionRep, project) => new {InspectionReport= InspectionRep, Projects= project });

            InspectionReportList = query.ToList();

            return InspectionReportList;
        }

Полный код:

      private AbstractRepository<InspectionReport> InspectionReportRepo;
        private AbstractRepository<Projects> ProjectsRepo;

 public AbstractRepository<InspectionReport> InspectionReportRepository
        {
            get
            {
                if (this.InspectionReportRepo == null)
                {
                    this.InspectionReportRepo = new AbstractRepository<InspectionReport>(context);
                }
                return InspectionReportRepo;
            }
        }

public AbstractRepository<Projects> ProjectsRepository
        {
            get
            {
                if (this.ProjectsRepo == null)
                {
                    this.ProjectsRepo = new AbstractRepository<Projects>(context);
                }
                return ProjectsRepo;
            }
        }

InspectionReport class:

public class InspectionReport
    {
        //General Details
        public int InspectionReportID { get; set; }


        public int ProjectID { get; set; }

        [ForeignKey("ProjectID")]
        public virtual Projects Projects { get; set; }

        }}

Projects.cs

public class Projects
    {       
        public int ID { get; set; }
        public string ProjectNo { get; set; }
    }
...