我有一个名为的模型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 服务。