Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq OrderByDescending然后ByDescending问题_C#_Asp.net Mvc_Linq - Fatal编程技术网

C# Linq OrderByDescending然后ByDescending问题

C# Linq OrderByDescending然后ByDescending问题,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,嗨,我在与linq订购时遇到了问题。 我有一个带有两个datetime字段的对象。其中一个只存储日期(例如2010年8月2日),并将时间保留为所有0 而另一个datetime字段是在创建记录时创建的,并且记录上也有时间。这两个领域的想法是因为我可能想在我的网站上添加几天前的“标题/文章”。所以我选择的是第一个名为“Date”的Datetime,通常默认为今天的日期 我的问题是,我可以按日期订购,但如果我在同一日期添加了许多文章(因此在数据库中,它们的日期字段都是相同的),则最新的文章将放在三篇文

嗨,我在与linq订购时遇到了问题。 我有一个带有两个datetime字段的对象。其中一个只存储日期(例如2010年8月2日),并将时间保留为所有0

而另一个datetime字段是在创建记录时创建的,并且记录上也有时间。这两个领域的想法是因为我可能想在我的网站上添加几天前的“标题/文章”。所以我选择的是第一个名为“Date”的Datetime,通常默认为今天的日期

我的问题是,我可以按日期订购,但如果我在同一日期添加了许多文章(因此在数据库中,它们的日期字段都是相同的),则最新的文章将放在三篇文章的底部

示例:
第1条-2010年8月12日-2010年8月12日下午2:45
第2条-2010年8月12日-2010年8月12日下午3:45
第3条-2010年8月12日-2010年8月12日下午4:45
第4条-2010年8月11日-2010年8月12日下午2:50

它们似乎只按日期字段排序,而不是按日期字段排序,然后创建了日期字段,我认为在使用命令时它们应该这样做(因为它们的日期字段是相同的)

在这里有点不知所措试图交换他们两个,但没有产生我想要的结果。似乎它只是忽略了Thenby下降

史蒂夫

编辑

好的,给大家更多的信息

Headlines = repository.All().OrderByDescending(x => x.Date).ThenByDescending(x => x.Created)
生成(然后显示创建日期)

2010年8月10日00:00:00 2010年8月10日19:27:46

2010年8月10日00:00:00 2010年8月10日19:27:21

2010年08月09日00:00:00 2010年08月10日21:28:11

2010年08月09日00:00:00 2010年08月09日00:00:00

而给予

Headlines = repository.All().OrderByDescending(x => x.Created).ThenByDescending(x => x.Date),
2010年08月09日00:00:00 2010年08月10日21:28:11

2010年8月10日00:00:00 2010年8月10日19:27:46

2010年8月10日00:00:00 2010年8月10日19:27:21


09/08/2010 00:00:00 09/08/2010 00:00:00

看来您的逻辑是正确的。我在一个控制台应用程序中复制了你的场景

使用此语句会产生预期的结果

reg.OrderByDescending(x=>x.RegisteredOn)
   .ThenByDescending(x=>x.StartsClassOn)
   .Take(8)
您是将LINQ查询分配给一个变量,还是确保它按预期执行


尝试
headlinepository.All().OrderByDescending(x=>x.Date.Date)。然后ByDescending(x=>x.Created)。Take(8)
?此代码从示例集中生成的顺序是什么?您的代码示例不会将表达式的结果分配给变量。你不指望这些方法会对你的原始收藏产生副作用吧?我更新了这篇文章,给出了更好的例子!
reg.OrderByDescending(x=>x.RegisteredOn)
   .ThenByDescending(x=>x.StartsClassOn)
   .Take(8)