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();我完全被弄糊涂了!关于这个错误的所有问题都要求对原语字段(比如I)使用==,我正在这么做。我对此查询所做的任何操作都会生成异常。完全相同的代码以前是有效的,但我不知道我对它做了什么!有人能给我解释一下发生了什么事吗?
此外,我还记得有一个EntityFramework类,它的方法允许您在查询中转换对象(例如日期),有人知道这个类是什么吗?
更新:
下面是我所做的更改(现在可以用了)。
var deptReports = from r in matchingIncidents
join d in ctx.Departments on r.deptNo equals d.deptNo
where r.deptNo == deptNumber
select r;发布于 2011-06-02 00:40:08
matchingIncidents看起来像是复杂类型的本地集合(因为您使用的是r.deptNo)。这在LINQ to Entities中是不允许的。你可以试着这样做:
foreach (int deptNumber in depts) {
var deptReports = from d in ctx.Departments
join r in matchingIncidents.Select(m => m.deptNo)
on d.deptNo equals r
where r == deptNumber
select r;
int deptReportsCount = deptReports.Count();matchingIncidents.Select(m => m.deptNo)现在是原语类型的本地集合,而deptReports是int的序列(假设deptNo的类型为int)。但是对于计算产生的元素,它应该仍然是好的。
编辑
并且您可能正在搜索静态EntityFunctions类:
http://msdn.microsoft.com/en-us/library/system.data.objects.entityfunctions.aspx
发布于 2011-06-02 00:23:10
问题可能是:
join r in matchingIncidents on d.deptNo == r.deptNohttps://stackoverflow.com/questions/6204428
复制相似问题