LINQ 分组依据,获取最新结果
本文关键字:获取 最新 结果 LINQ | 更新日期: 2023-09-27 17:55:23
我对 LINQ 相当陌生,所以这对你们中的一些人来说可能很容易,但我已经扯掉头发很长一段时间了:)
场景:我有一个包含 3 个具有不同端口的硬件模块的盒子。使用串行通信,我将模块中的数据提取到名为 CurrentData_Tables 的 SQL 表中因此,每次生产一个单位时,我的程序都会在表中写入一个条目,说明总和有多大。让我试着想象一下。
BoxID, ModuleID, PortNumber, Value, Time
1, 0A, 1, {Value}, {Date}
该特定模块的读数上的时间完全相同,因此我想我可以按常量的数据进行分组,然后获取最新数据。这就是我到目前为止得到的:
SQLdbDataContext sqlDB = new SQLdbDataContext();
BindingSource bs = new BindingSource();
var Latest = from q in sqlDB.CurrentData_Tabels
group q by new
{
q.BoxID,
q.ModuleID,
q.PortNumber,
q.Time
}
into groupOrder
select new
{
BoxID = groupOrder.Key.BoxID,
ModuleID = groupOrder.Key.ModuleID,
Portnumber = groupOrder.Key.PortNumber,
Time = groupOrder.Key.Time
};
这很好,我得到了我想要的所有结果......更重要的是,我不需要知道模块 0A、端口 1 上的读数在最新条目 3 之前已数到 2。这是可以理解的吗?,如果没有,请让我尝试再次解释:)
做一个>来获得最大的金额是行不通的,因为我也有触发布尔值的状态,1 表示机器上存在警报,0 表示一切正常!
我认为您需要从组表达式中删除"时间"字段,并在"选择新"中使用最大值。