好的,这里是问题。
我有一个包含物品价格和时间的表格(实际上是视图,但无关紧要)。字段如下:
- 物品名称
- 价格
- 时间戳。
其中还有其他需要访问的字段,例如列和一些计算出来的数字。这基本上是一个带有字段的对象,我们有一个非常长的表格(数百万行)。
我需要将物品名称列表与它们最近的价格连接起来,并且我想在 linq 中这样做。在纯 SQL 中,这已经不是一件有趣的事情了。我基本上寻找一个“视图”(可进一步合并的 IQueryable)定义,该定义仅包含给定物品名称的最新对象。然后可以使用 JOIN 语句与另一个过滤表(要显示价格的物品列表)进行连接。数据库设计是固定的第三方,因此无法通过重新设计来避免该问题。
在纯 SQL 中,我会定义一个包含 ItemName 和 Max(Timestamp)(按 ItemName 分组)的查询,然后自连接同一个表格以获取精确时间戳中的其他字段。
是否有任何好的方法在 LINQ 中处理这个问题呢?请用 Lambda 写,我不喜欢 SQL 风格的语法。