我开始使用 .NET 4.5 Entity Framework 编写 wcf Web 服务。
我很难弄清楚如何输出以下 linq 查询,这是我的代码:
using (var context = new myEntities())
{
var countResultsByArea = from v in context.vPerson
join pe in context.pEvent on v.pevent_id equals pe.pevent_id
join pd in context.pEventArea on pe.pevent_id equals pd.pevent_id
join d in context.dArea on pd.darea_id equals d.darea_id
join z in
(
from el in context.event
select new { el.event_id, el.title_1, el.title_2, el.event_date }
) on pe.event_id equals z.event_id
where (v.status.ToString() == "A" || v.status.ToString() == "P") && pe.event_id == 800
&& new[] { 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449 }.Contains(pd.area_id)
group new { d, z, v } by new { d.name_1, z.title_1 } into y
let myGroup = y.FirstOrDefault()
let myDArea = myGroup.d
let myPEvent = myGroup.z
select new { distArea = myDArea.name_1, title = y.Max(x => x.z.title_1), personCount = y.Count() };
if (countResultsByArea != null)
foreach (var item in countResultsByArea)
{
Console.WriteLine(item.distArea);
Console.WriteLine(item.title);
Console.WriteLine(item.personCount);
}
else
throw new Exception(string.Format("Error retrieving voter count by CD", "Error"));
}
在 foreach 循环返回以下错误之前,我没有收到错误:
LINQ to Entities 无法识别方法“System.String ToString()”方法,并且该方法无法转换为存储表达式。
我在这里看到了其他问题,其中的答案使用 .AsEnumerable 将查询输出为列表,但我不确定如何修改 linq 查询,因为它非常复杂。
任何帮助将不胜感激。