109*_*793 420 c# linq sql-order-by
我相信这将是一个相对简单的.
我有一个LINQ查询,我想按最近创建的日期排序.
看到:
var itemList = from t in ctn.Items
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending();
Run Code Online (Sandbox Code Playgroud)
但这会给出一个错误:
方法'OrderByDescending'的重载不带0参数
从我所读到的,我很确定我做的第一种方式应该有效.我已经尝试将降序改为升序只是为了看它是否做了什么,但它保持不变.
如果有人能够查看查询并查看我是否做错了什么,我将不胜感激.谢谢 :)
Ada*_*ice 649
您需要选择要排序的属性并将其作为lambda表达式传递给 OrderByDescending
喜欢:
.OrderByDescending(x => x.Delivery.SubmissionDate);
Run Code Online (Sandbox Code Playgroud)
真的,虽然你的LINQ语句的第一个版本应该工作.t.Delivery.SubmissionDate实际上是否填充了有效日期?
mro*_*iak 166
我认为这首先失败了,因为你订的是null的值.如果Delivery是外键关联表,那么您应首先包含此表,如下所示:
var itemList = from t in ctn.Items.Include(x=>x.Delivery)
where !t.Items && t.DeliverySelection
orderby t.Delivery.SubmissionDate descending
select t;
Run Code Online (Sandbox Code Playgroud)
Jon*_*han 28
我认为第二个应该是
var itemList = (from t in ctn.Items
where !t.Items && t.DeliverySelection
select t).OrderByDescending(c => c.Delivery.SubmissionDate);
Run Code Online (Sandbox Code Playgroud)
只是为了以某种我更喜欢使用的不同格式来显示它:第一种方法将您的 itemList 作为 System.Linq.IOrderedQueryable 返回
using(var context = new ItemEntities())
{
var itemList = context.Items.Where(x => !x.Items && x.DeliverySelection)
.OrderByDescending(x => x.Delivery.SubmissionDate);
}
Run Code Online (Sandbox Code Playgroud)
这种方法很好,但如果您想直接将其放入列表对象中:
var itemList = context.Items.Where(x => !x.Items && x.DeliverySelection)
.OrderByDescending(x => x.Delivery.SubmissionDate).ToList();
Run Code Online (Sandbox Code Playgroud)
您所要做的就是在查询的末尾附加一个 .ToList() 调用。
需要注意的一点是,我想不起来在 Where() 调用中是否可以接受 !(not) 表达式。
| 归档时间: |
|
| 查看次数: |
872387 次 |
| 最近记录: |