我有一个名为的模型ProjectVersion
,它具有以下属性:
专业 国际未成年人 整数补丁 诠释?修订 字符串预发布 字符串元数据
现在我正在尝试根据Semantic Versioning 2.0.0 规范以降序对版本进行排序,其中优先级为Major > Minor > Patch > PreRelease
我还使用实体框架和 Linq 来获取我的数据,这是我目前使用的代码:
注意:以下代码中的所有小于“<”和大于“>”符号都替换为管道“|” 由于我对stackoverblow 缺乏经验。
公共列表|ProjectVersionDataContract| GetProjectVersions(int projectId) { // TODO: 根据规范评估版本控制系统和订单列表。 var 版本 = 新列表|ProjectVersionDataContract|(); 使用 (var context = new Entity()) { var vers = context.ProjectVersions.Where(v => v.ProjectId == projectId) .OrderBy(v => v.MajorVersion) .ThenBy(v => v.MinorVersion) .ThenBy(v => v.PatchVersion) .ThenBy(v => v.RevisionVersion) .ThenBy(v => v.PreReleaseVersion).ToList(); // 这里使用 AutoMapper 包将 Data Object 映射到 Data Contract 版本.AddRange(vers.Select(Mapper.Map|ProjectVersion, ProjectVersionDataContract|)); } 返回版本; }
现在这是我的数据,但它首先返回最低(最旧)版本,这与我想要的相反。我什至尝试将其更改.OrderBy()
为OrderByDescending()
没有任何区别。如果这有什么不同的话,这是一个 WCF 服务。