0

我正在使用 C3 和 Razor 引擎处理 ASP.Net MVC4 应用程序!我有一个名为 builds 的数据库,其中包含各种列,如版本、创建日期。

数据库有双版本,即 4.0.230、4.0.230、4.0.229、4.0.229。这是因为要告诉哪个版本对应哪个环境。比如版本是X64等。

所以每个环境都有一个版本。

我有一个实体框架行要求检索最后 10 个构建:

var lastVersions = db.Builds.OrderByDescending(b => b.CreationDate).Take(10).Select(b=>b.Version);

所以我按创建日期订购它们并取最后 10 个它看起来像这样 4.0.240 4.0.240 4.0.239 4.0.239 4.0.238 等

然后使用这行代码:

ViewBag.Versions = lastVersions.Distinct().ToArray();

我想要:[4.0.240, 4.0.239, 4.0.238, 4.0.237, 4.0.236] 但我得到: [4.0.236, 4.0.237, 4.0.238, 4.0.239, 4.0.240]

基本上 OrderbyDescending 不起作用。请帮助 非常感谢所有帮助!谢谢!

4

1 回答 1

1

没有看到您的数据库,看起来您的 OrderByDescending 确实有效,但您实际上需要订购两次。第一次,您按创建日期排序以获得最近的 10 个构建,但是在选择之后,填充到 var 时不再保证顺序。您必须再次按版本号排序。假设 ViewBag.Versions 是一个字符串 [],你可以这样做:

Array.Sort(ViewBag.Versions);

或者

Array.Reverse(ViewBag.Versions);

如果它们最初是按升序排列的。

于 2013-10-08T14:53:09.247 回答