【问题标题】:Linq Select statement inside Order ByOrder By 中的 Linq Select 语句
【发布时间】:2017-09-25 08:56:15
【问题描述】:

是否可以通过以下方式在 order 中编写 linq select:

 ReservationDTO obj = new ReservationDTO();
 obj.bookroomview = obj.bookroomview.GroupBy(a => a.RoomFloor)
                .Select(a => obj.bookroomview
                    .Select(x => new { Amount = a.Select(b => b.ReservationRoomID).Count(), Name = a.Key })
                    .OrderBy(x => x.Amount)

                ).ToList().AsQueryable(); 

我的目标是选择所有 obj.roombookview 项目,但根据 Count 计算对它们进行排序。如果可能的话,我该怎么写?

我的视图类:

public partial class Book_Room_View
{
    public Nullable<int> ReservationID { get; set; }
    public Nullable<System.DateTime> StartDate { get; set; }
    public Nullable<System.DateTime> EndDate { get; set; }
    public Nullable<int> ReservationRoomID { get; set; }        
    public string RoomName { get; set; }

}

【问题讨论】:

  • 您好,ReservationRoomID 的类型是什么,是集合吗?也许如果您添加您的 bookroomview 课程,我们会更容易为您提供帮助。
  • 嗨,我在帖子中添加了视图类

标签: sql linq select sql-order-by


【解决方案1】:

如果您要通过预订来订购组,我想这是正确的做法,您不需要像我想您正在尝试的那样计算特定属性,只需按值列表的计数进行排序。

obj.bookroomview.GroupBy(a => a.RoomFloor)
                .OrderBy(gr => gr.Count())
                .Select(gr => new { Amount = gr.Count(), Name = gr.Key })
                .AsQueryable();

【讨论】:

  • 它给了我一个错误CS0266 Cannot implicitly convert type 'System.Linq.IQueryable&lt;&lt;anonymous type: int Amount, int? Name&gt;&gt;' to 'System.Collections.Generic.List&lt;ReservationSystem.Models.Book_Room_View&gt;'. An explicit conversion exists (are you missing a cast?) ReservationSystem
  • 是的,因为它是不同的类型,我们已经将列表转换为匿名类型,这里 Select(gr =&gt; new { Amount = gr.Count(), Name = gr.Key } 您需要将其分配给新变量,或者您需要将其转换为 ReservationSystem 列表.Models.Bo‌​ok_Room_View.
  • 如果我将其分配给一个新变量(var query = obj.bookroomview.....),我如何使用查询访问所有项目(房间名称、卫星日期...)? (对不起,我是初学者)
  • 这取决于您使用的是什么,您可以创建一个新类型并选择它,或者您可以选择它们列表,这没有任何意义,因为分组将毫无意义,我会删除选择声明,并将其分配给一个新变量,您将拥有字典键 List,对于每个键(房间楼层),您将拥有 bookroomview 列表,您可以循环浏览或尝试执行任何操作。
  • 感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
相关资源
最近更新 更多