我正在使用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不起作用。 请帮忙 非常感谢所有帮助! 谢谢!
答案 0 :(得分:1)
如果没有看到您的数据库,看起来您的OrderByDescending确实有效,但实际上您需要订购两次。您第一次按创建日期排序以获取最新的10个版本,但是在选择之后,当填入var时,订单不再保证。您必须按版本号重新排序。假设ViewBag.Versions是一个字符串[],你可以这样做:
Array.Sort(ViewBag.Versions);
或
Array.Reverse(ViewBag.Versions);
如果它们最初是按升序排列的。