linq语句 两表左联(多条件联合) 无数据赋值 || A表多次左联B表(含根据条件拼接linq)

 linq语句 两表左联(多条件联合) 无数据赋值

var Editquery=from table in query
                              join dyTable in dyTableQuery 
                              on new {TableMC= table.MC,tableTypeName=table.TABLE_NAME }  equals new { TableMC = dyTable.BMMC, tableTypeName = dyTable.BM_TABLENAME }
                              into newQuery
                              from A in newQuery.DefaultIfEmpty()
                              select new Model.CorrespondingTableInfo
                              {
                                  BM= table.BM,
                                  MC = table.MC,
                                  TABLE_NAME=table.TABLE_NAME,
                                  IsHaveDY = A != null ? true : false
                              };


                return Editquery.ToList();

--------------------A表多次左联B表(含根据条件拼接linq),因为A表里有3个列存编码要去B表查名称-------------------------------------------

var query = from s in Employees
                        join departpent in Departments on s.FunctionDepartment equals departpent.Code into FunctionName
                        from FName in FunctionName.DefaultIfEmpty()
                        join departpent2 in Departments on s.OutpatientDepartment equals departpent2.Code into OutName
                        from OName in OutName.DefaultIfEmpty()
                        join departpent3 in Departments on s.InpatientDepartment equals departpent3.Code into InName
                        from IName in InName.DefaultIfEmpty()
                        select new Model.EmployeeInfo
                        {
                            OutpatientDepartment = s.OutpatientDepartment.TrimEnd(),
                            InpatientDepartment = s.InpatientDepartment.TrimEnd(),
                            FunctionDepartment = s.FunctionDepartment.TrimEnd(),
                            FunctionDepartmentName = FName.Name ?? "",
                            OutpatientDepartmentName = OName.Name ?? "",
                            InpatientDepartmentName = IName.Name ?? "",
                            EmpNo = s.EmpNo.TrimEnd(),
                            Name = s.Name.TrimEnd(),
                        };
            if (!string.IsNullOrEmpty(EmpNoOrName))
            {
                query = query.Where(s => s.EmpNo.Contains(EmpNoOrName) || s.Name.Contains(EmpNoOrName));
            }
            else if (!string.IsNullOrEmpty(strDepartmentCode))
            {
                query = query.Where(s=>s.InpatientDepartment== strDepartmentCode||s.FunctionDepartment== strDepartmentCode||s.OutpatientDepartment== strDepartmentCode);
            }
            return query.ToList();
发布了53 篇原创文章 · 获赞 32 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/niuniuyaobuyao/article/details/80422300
今日推荐