присоединение enum как IQueryable к запросу linq-to-sql - PullRequest
0 голосов
/ 01 июля 2019

Возможно ли объединение enum в операторе linq-to-sql?

пытался создать запрашиваемую сущность с использованием enum, но похоже, что EF все еще ищет примитивный контекст.

            IQueryable<BuildingInspectionType> buildingInspectionTypes = Enum.GetNames(typeof(BuildingInspectionTypes))
                .Select(bit => new BuildingInspectionType
                {
                    Id = (int)Enum.Parse(typeof(BuildingInspectionTypes), bit, true),
                    Description = bit
                }).AsQueryable();
            IQueryable<BuildingInspectionItemStatus> buildingInspectionItemStatus = Enum.GetNames(typeof(BuildingInspectionStatuses))
                .Select(biis => new BuildingInspectionItemStatus
                {
                    Id = (int)Enum.Parse(typeof(BuildingInspectionStatuses), biis, true),
                    Description = biis
                }).AsQueryable();
            IQueryable<IDtoFinderFullBuildingInspection> dataSource = 
                from bi in ctx.BuildingInspections
                join emp in ctx.Contacts on bi.IdInspector equals emp.Id into i
                from insp in i.DefaultIfEmpty()
                join spn in ctx.StrataPlanNumbers.Where(m => m.IsPrimary) on bi.Id equals spn.IdBuilding into bldSpn
                from spn in bldSpn.DefaultIfEmpty()
                join bit in buildingInspectionTypes on bi.IdBuildingInspectionStatus equals bit.Id into bit2
                from bldInsType in bit2.DefaultIfEmpty()
                join bis in buildingInspectionItemStatus on bi.IdBuildingInspectionStatus equals bis.Id into bis2
                from bldInsStatus in bis2.DefaultIfEmpty()
                select new DtoFinderBuildingInspection
                {
                    Id = bi.Id,
                    StrataPlanNo = spn.Description,
                    IdBuilding = bi.IdBuilding,
                    Type = bldInsType.Description,
                    InspectionStatus = bldInsStatus.Description,// Enum.GetName(typeof(BuildingInspectionStatuses), bi.IdBuildingInspectionStatus),
                    Inspector = insp.Name,
                    Notes = bi.Notes
                };

            return dataSource;

Я ожидаю, что запрашиваемый IDtoFinderFullBuildingInspection соединится с двумя перечислениями без объединения с действительной сущностью.

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