c# – Entity Framework为每种类型的记录选择最新记录
发布时间:2020-12-16 02:03:07 所属栏目:百科 来源:网络整理
导读:我有一个名为values的表,如下所示: +-------+------------+-----------+----------+|Id |DateTime |SensorId |Value |+-------+------------+-----------+----------+ SensorId是传感器详细信息表的外键.此值表中将有10m条记录. 我可以运行此sql命令返回每
我有一个名为values的表,如下所示:
+-------+------------+-----------+----------+ |Id |DateTime |SensorId |Value | +-------+------------+-----------+----------+ SensorId是传感器详细信息表的外键.此值表中将有10m条记录. 我可以运行此sql命令返回每个SensorId的最新记录,并在大约0.3秒内运行. SELECT a.* FROM Values as a INNER JOIN ( SELECT SensorId,MAX(ID) maxId FROM Values GROUP BY SensorId ) b ON a.SensorId = b.SensorId AND a.Id = b.maxId ORDER BY a.SensorId ASC 如何在保持(或改进)性能的同时在c#应用程序中使用实体框架实现相同的输出? 解决方法
使用LINQ to Entities和lambdas,您可以这样做:
dataContext.Values.GroupBy(p => p.SensorId) .Select(p => p.FirstOrDefault(w => w.Id == p.Max(m => m.Id))) .OrderBy(p => p.SensorId).ToList() 其中dataContext是ObjectContext类的实例. ToList()编译查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 如何通过列名称获取DataGridView的单元格值?
- Flash采集音频和视频发布到red5服务器
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(
- 正则表达式--appendReplacement
- c# – 交换Web服务错误 – 远程服务器返回错误405方法不允许
- ruby-on-rails – %w {models} .each do | dir |在Rails中
- c# – 如何在MahApps.Metro中添加AnimatedTabControl?
- react-native报错解决方法 in next release empty section
- c – 3D中的稳定流体示例
- XML中RelativeLayout的参数