var depts = ctx.Departments
.OrderBy(d => d.deptName)
.Select(d => d.deptNo);
foreach (int deptNumber in depts) {
var deptReports = from d in ctx.Departments
join r in matchingIncidents on d.deptNo equals r.deptNo
where r.deptNo == deptNumber
select r;
int deptReportsCount = deptReports.Count();
我完全感到困惑!所有关于这个错误的问题都说在我正在做的原始字段(比如ID)上使用==。我对这个查询做的任何事情都会产生异常。完全相同的代码之前工作,我不知道我已经做了什么!有人可以向我解释发生了什么事吗?实体框架 - NotSupportedException
另外,我记得有一个EntityFramework类的方法允许您在查询内转换对象(例如日期),有人知道这个类是什么吗?
更新:
以下是我所做的更改(现在的作用)。
var deptReports = from r in matchingIncidents
join d in ctx.Departments on r.deptNo equals d.deptNo
where r.deptNo == deptNumber
select r;
是'matchingIncidents'的'IQueryable'或已经加载到内存中的对象的列表?如果它是内存中的集合,请记住,UPDATE代码中的“join”不会发生在数据库中,而是发生在内存中 - 这意味着:在执行联接之前,整个“Departments”表将被加载到内存中记忆。 – Slauma 2011-06-01 18:11:47