2010-06-26 39 views
0

我有人士作了订单表:排名。 LINQ to SQL的问题

Orders 
{ 
    Guid PersonId, 
    int Priority, 
    Guid GoodId 
} 

当务之急是某一整数。例如:

AlenId 1 CarId 
DianaId 0 HouseId 
AlenId 3 FoodId 
DianaId 2 FlowerId 

我想要检索最高优先级顺序为每个人:

AlenId 1 CarId 
DianaId 0 HouseId 

在T-SQL我会用排序,我怎么能得到相同的结果Linq中-2- Sql?

预先感谢您!

回答

2

事情是这样的:

var query = from order in context.Orders 
      orderby order.Priority 
      group order by order.PersonId into personOrders 
      select personOrders.First(); 

相信应该工作,但我不知道如何定义它,在订货后的分组方面。这也将工作,虽然这是稍微难看:

var query = from order in context.Orders 
      group order by order.PersonId into personOrders 
      select personOrders.OrderBy(order => order.Priority).First(); 

或者只用点符号:

var query = context.Orders 
        .GroupBy(order => order.PersonId) 
        .Select(group => group.OrderBy(order => order.Priority) 
             .First());