You can get value from Entity framework which can allow null able and you can also perform filtering in your query. private static IQueryable<EmployeeInformation> ReportFilteringEmployeeInformations(Guid factoryId, Guid departmentId, Guid designationId, string empId, string empName, Guid sectionId, Guid categoryEmpId, int? CategoryTypeID, Guid categorySalaryID, Guid blockID,string cardNo, PayrollEntities context) { var query = from emp in context.vw_PIS_TblEmployeeGenInfo join des in context.vw_PIS_TblEmployeeDesignation on emp.GDesignationInfoID equals des.GDesignationInfoID into des_J join dept in context.vw_PIS_tblDepartment on emp.GDepartmentID equals dept.GDepartmentID into dept_J join sec in context.vw_PIS_TblSection on emp.SectionID equals sec.SectionID into sec_J from des1 in des_J.DefaultIfEmpty() from dept1 in dept_J.DefaultIfEmpty() from sec1 in sec_J.D...
Work smarter, not harder.