Table : tblEmp
EmpId EmpName ManagerId
101 john Null
102 jack 101
0 след. запрос дает ошибку, что материализованное значение равно null. Где я иду не так. Обратите внимание, что EmpId & ManagerId на самом деле являются идентификаторами GUID в таблице.Вступить в систему Вступить в Linq дает
Использование C#, LINQ к объектам
public DataTable GetData(guid id)
{
var qry = from e in MYDB.tblEmps.where(e=>e.EmpId==id)
join m in MYDB.tblEmps on e.ManagerId equals m.EmpId into emp_mgr
from m in emp_mgr.DefaultIfEmpty()
select new
{
name = m.empname ?? string.empty,
id = e.managerid //also tried e.managerid ?? guid.empty
}
DataTable dt = qry.ToDataTable();
return dt;
}
Я действительно не использую синтаксис запроса, поэтому я не уверен в этом, но если вы используете '==' здесь, а не '='? 'e.ManagerId = m.EmpId в emp_mgr' – evanmcdonnal
oh.Typo. Это было «равно». Обновлено. – Ruby
ОШИБКА. Приведение значения к типу «Guid» не выполнено, поскольку материализованное значение равно null. – Ruby