Here is the Raw SQL it gives 4 distinct names as I have used the Distinct keyword
var strSql = "select distinct emp.PK_EmployeeID as 'PK_EmployeeID' , "
            + "(emp.First_Name+ ' ' + emp.Last_Name) as 'EmployeeName'  ,"
            + "  emp.IsActive as 'IsActive' , "
            + "  c.CompanyName   as 'LegalEntity' "
            + " from tSMR_Employee as emp left "
            + " outer join tClientCompany as c on c.ClientNumber=emp.FK_CMPClientID "
            + " left outer join tSMR_Employee_RoleAssign as era on era.FK_EmployeeID=emp.PK_EmployeeID "
            + " where emp.FK_CMPClientID=" + FK_CMPClientID + " and emp.IsActive=" + IsActive;
if (FK_ClientRole_TypeID != 0)
{
    strSql = strSql + "    and era.FK_ClientRole_TypeID=" + FK_ClientRole_TypeID;
}
var list = db.Database.SqlQuery<QueryResult>(strSql).ToList();
But when I tried to make its LINQ equivalent ... I am getting the common
Object reference not set
  var list = (
    from SMREmployee in db.tSMR_Employee.AsEnumerable()
    join ClientCompany in db.tClientCompany 
        on SMREmployee.FK_CMPClientID equals ClientCompany.ClientNumber
    join SMR_Employee_RoleAssign in db.tSMR_Employee_RoleAssign 
        on SMREmployee.PK_EmployeeID equals SMR_Employee_RoleAssign.FK_EmployeeID 
        into tmp_SMR_Employee_RoleAssign
    from lo_tmp_SMR_Employee_RoleAssign in tmp_SMR_Employee_RoleAssign.DefaultIfEmpty()
    where SMREmployee.IsDeleted == false 
    && SMREmployee.FK_SystemID == SystemID
    && (IsActive == 2 
        ? SMREmployee.IsActive == SMREmployee.IsActive 
        : IsActive == 1 
        ? SMREmployee.IsActive == true 
        : SMREmployee.IsActive == false)
    && (FK_CMPClientID == 0 
        ? SMREmployee.FK_CMPClientID == SMREmployee.FK_CMPClientID 
        : SMREmployee.FK_CMPClientID == FK_CMPClientID)
    && (FK_ClientRole_TypeID == 0 
        ? lo_tmp_SMR_Employee_RoleAssign.FK_ClientRole_TypeID == lo_tmp_SMR_Employee_RoleAssign.FK_ClientRole_TypeID 
        : lo_tmp_SMR_Employee_RoleAssign.FK_ClientRole_TypeID == FK_ClientRole_TypeID)
    select new
    {
        PK_EmployeeID = SMREmployee.PK_EmployeeID,
        IsActive = SMREmployee.IsActive,
        EmployeeName = Convert.ToString(SMREmployee.First_Name) 
            + " " 
            + Convert.ToString(SMREmployee.Middle_Name) 
            + " " 
            + Convert.ToString(SMREmployee.Last_Name),
        LegalEntity = ClientCompany.CompanyName
    }).OrderBy(t => t.PK_EmployeeID).Distinct();
error..... I guess I made some error in querying
