linq中的高级查询到实体或存储过程

时间:2010-10-04 19:34:37

标签: entity-framework linq-to-entities

我目前正在使用实体框架构建应用程序。通常我会使用存储过程从我的数据库中获取特定数据,但现在我正在尝试实体框架。

现在我面临一个小小的挑战。我有一个事件日志表,其中包含主键,事件ID和一些数据字段。我需要为每个事件获取所有最新的行。 sql非常简单:

从eventLog t中选择* join(在IncidentId中选择incidentId,max(id)作为来自eventsLog组的id)tt在t.id = tmp.id

如何将此转换为linq到实体? 我可以在一次操作中完成它,还是应该使用存储过程?

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

var query =
     (from i in context.IncidentLogs                    
     group i by i.IncidentId into g
     let maxID = g.Max(i => i.id)
     select g.Where(i => i.id == maxID)).ToList();