我有一张如下表:
ConfigID | VersionNo | ObjectType
ConfigID 和 VersionNo 构成唯一键。我希望能够根据对象类型为每个 configID 选择具有最高 VersionNo 的记录。
我努力了
configs = (from config in configRepository.FindBy(x => x.ObjectType.Equals(typeof(Node).ToString(), StringComparison.InvariantCultureIgnoreCase))
group config by config.ConfigID into orderedConfigs
select orderedConfigs.OrderBy(x => x.ConfigID).ThenByDescending(x => x.VersionNo).First());
编辑:我必须补充一点,FindBy 基本上只是一个 where 子句。但我没有得到任何结果。请帮我解决一下这个。
编辑:
表中的数据可能如下所示:
3fa1e32a-e341-46fd-885d-8f06ad0caf2e | 1 | Sybrin10.Common.DTO.Node
3fa1e32a-e341-46fd-885d-8f06ad0caf2e | 2 | Sybrin10.Common.DTO.Node
51d2a6c7-292d-42fc-ae64-acd238d26ccf | 3 | Sybrin10.Common.DTO.Node
51d2a6c7-292d-42fc-ae64-acd238d26ccf | 4 | Sybrin10.Common.DTO.Node
8dbf7a33-441f-40bc-b594-e34c5a2c3f51 | 1 | Some Other Type
91413e73-4997-4643-b7d2-e4c208163c0d | 1 | Some Other Type
从此我只想检索第二个和第四个记录,因为它们具有 configID 的最高版本号并且是所需的类型。