用Linq订购 [英] Order by with Linq
本文介绍了用Linq订购的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我与两个实体存在一对多关系:
I have a One-Many relation with two Entities :
Order:
int OrderId
string OrderNumber
...
OrderItem:
int ItemId
int sequence
decimal Quantity
...
一个Order
具有多个OrderItems
,我想编写一个Linq,该Linq返回所有订单及其物料,并且物料按序列字段排序.
如何编写查询,例如以下查询?
One Order
Has multiple OrderItems
, I want to write a Linq that return all orders with their items and items be sorted by sequence field.
How can i write a query such as following query?
Order myOrder = db.Orders.Include("OrderItems").Include("sequence").FirstOrDefault(x => x.OrderId == 3);
推荐答案
如果不将结果投影到新类型中就无法做到这一点.
You can't do that without projecting the results into a new type.
var myOrder= db.Orders.Include("OrderItems")
.Where(x => x.OrderId == 3)
.Select(o => new {
order = o,
orderItems = o.OrderItems.OrderBy(i => i.sequence)
}).FirstOrDefault();
// Usage
myOrder.order; // Order
myOrder.order.OrderItems; // OrderItems
myorder.orderItems; // OrderItems alternative
Whilst it's not ideal projecting it into a new object, according to this blog post, there is a nice side-effect that now order.OrderItems
on your anonymous object will be sorted correctly too.
这篇关于用Linq订购的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文