我知道有很多与此问题相关的链接,但我的情况有点奇怪。 tbEHDepartments和tbEHAccesses表是新添加的,因此在tbEHUsers表中它们的引用为null。到目前为止,我理解和搜索列中的NULL值是出错的原因,但在ManagerID为null时的情况下有效。我的意思是说如果我从select查询中删除grp1.DeptID,即使ManagerId为null,一切也能正常工作。
var data = from t in db.tbEHUsers.DefaultIfEmpty()
join t3 in db.tbEHUsers.DefaultIfEmpty() on t.ManagerID equals t3.UserID into t2
from grp in t2.DefaultIfEmpty()
join d in db.tbEHDepartments.DefaultIfEmpty() on t.DeptID equals d.DeptID into t4
from grp1 in t4.DefaultIfEmpty()
join a in db.tbEHAccesses.DefaultIfEmpty() on t.AccessID equals a.AccessID into t5
from grp2 in t5.DefaultIfEmpty()
orderby t.FirstName
select new { t.UserID, t.UserName, t.FirstName, t.LastName, t.Email, t.ManagerID, TeamLead = grp.FirstName + " " + grp.LastName, grp1.DeptID };//, grp1.DeptName, grp2.AccessID, AccessName=grp2.Name };
var dt = Utility.ToDataTable(data);
答案 0 :(得分:0)
ManagerID和USerID是否是相同的数据类型?其中一个是Nullable因此“Int32?” ?
有时候,在数据库遇到数据之前不会抛出类似的错误。