LINQ to Entities:从每个组获取更新的日期

时间:2014-08-04 20:40:25

标签: c# linq linq-to-entities

我正在尝试按类型报告进行分组,并使用 LINQ为每种报告类型返回最近的已创建日期到实体。我做了我的研究并阅读了很多问题,其中大部分都是使用与我相似的查询来解决的:

var query = ctx.DataWorkspace.ApplicationData.Reports
         .GroupBy(i => i.ReportType)
         .Select(i => new { name = i.Key, y = i.Max(h => h.DateCreated) });

但是我收到了这个错误:

A query cannot return non-Entity types that contain embedded entities

我做错了什么?是因为它是LINQ到实体吗?

1 个答案:

答案 0 :(得分:1)

错误消息非常具有描述性。您的匿名类型包含一个类型为实体的属性(name = i.Key部分)。您不能这样做,因为LINQ to Entities无法跟踪对这些实体的更改。

您可以从ReportType而不是整个实体中获取一些属性:

var query = ctx.DataWorkspace.ApplicationData.Reports
     .GroupBy(i => i.ReportType)
     .Select(i => new { name = i.Key.Name, y = i.Max(h => h.DateCreated) });

i.Key.Name只是一个例子。您的实体可能具有您关注的不同属性/属性。