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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章