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