分享

成功ef linq返回动态数据

 北方天空A 2021-03-26

public async Task<IEnumerable<dynamic>> GetLZBase(string SearchType, string SearchValue, DateTime? StartTime, DateTime? EndTime)

        {

            SearchType += "";

            SearchValue += "";

            Expression<Func<DbLZBase, bool>> expression = PredicateExtensions.True<DbLZBase>();

            switch (SearchType)

            {

                case "卵障号":

                    expression = expression.And(o => o.EggDevelopementDisorderNumber.Contains(SearchValue));

                    break;

                case "家系号":

                    expression = expression.And(o => o.FamilyNumber.Contains(SearchValue));

                    break;

                case "辅助生殖病历号":

                    expression = expression.And(o => o.SeriousIllnessNumber.Contains(SearchValue));

                    break;

                case "卡号":

                    expression = expression.And(o => o.CardNumber.Contains(SearchValue));

                    break;

                case "身份证号":

                    expression = expression.And(o => o.WomanIDNumber.Contains(SearchValue) || o.ManIDNumber.Contains(SearchValue));

                    break;

                case "姓名":

                    expression = expression.And(o => o.WomanName.Contains(SearchValue) || o.ManName.Contains(SearchValue));

                    break;

                case "手机号":

                    expression = expression.And(o => o.WomanMobilePhoneNumber.Contains(SearchValue) || o.ManMobilePhoneNumber.Contains(SearchValue));

                    break;

            }

            if (system_function.RegexLongTime(StartTime.ToString()) && system_function.RegexLongTime(EndTime.ToString()))

            {

                expression = expression.And(o => o.AddTime >= StartTime && o.AddTime <= EndTime);

            }

            List<DbLZBase> LZBase = await _dbContext.dbLZBase.Where(expression).OrderByDescending(i => i.AddTime).ToListAsync();

            var model = _dbContext.dbGeneTestResults.Where(i => i.EggDevelopementDisorderNumber != null).ToList().Join(LZBase, o => o.EggDevelopementDisorderNumber, k => k.EggDevelopementDisorderNumber, (o, k) => new  { k.ID, k.EggDevelopementDisorderNumber, k.CardNumber, k.FamilyNumber, k.SeriousIllnessNumber, k.WomanName, k.WomanAge, k.WomanSex, k.WomanEducationBackground, k.WomanOccupation, k.WomanIDNumber, k.WomanResidence, k.WomanResidenceName, k.WomanBirthPlace, k.WomanBirthPlaceName, k.WomanMobilePhoneNumber, k.ManName, k.ManAge, k.ManSex, k.ManEducationBackground, k.ManOccupation, k.ManIDNumber, k.ManResidence, k.ManResidenceName, k.ManBirthPlace, k.ManBirthPlaceName, k.ManMobilePhoneNumber, k.ClassifiedDiagnosticInformation, k.AddMan, k.AddTime, k.ModifyMan, k.ModifyTime, o.PdfFilePath }).ToList();

            return model;

        }

关键代码:public async Task<<dynamic>> GetLZBase中的dynamic

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多