2017-09-25 56 views
0

是否有可能通過類似的東西里面寫爲了選擇一個LINQ:內訂購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項目,但根據他們數計算排序。如果有可能我怎麼寫?

我的觀點類:

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; } 

} 
+0

嗨,什麼是ReservationRoomID的類型,它是集合? 也許如果你添加你的bookroomview類,我們會更容易幫助你。 – Munzer

+0

嗨,我在我的帖子中添加了視圖類 – emmy

回答

0

如果你訂購通過預約的團體,我想這是正確的方法做,你不需要我猜你是想算特定屬性,只需按價值清單的數量進行排序。

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

它給了我一個錯誤'CS0266 \t不能隱式轉換類型'System.Linq.IQueryable <<匿名類型:int Amount,int?名稱>>'改爲'System.Collections.Generic.List '。顯式轉換存在(你是否缺少一個轉換?)\t ReservationSystem' – emmy

+0

是的,因爲它是不同的類型,我們已經將列表鑄造成一個匿名類型的權利,這裏'Select(gr => new {Amount = gr.Count() ,Name = gr.Key} 你需要將它分配給一個新的變量,或者你需要將它轉換爲ReservationSystem.Models.Bo的列表ok_Room_View – Munzer

+0

如果我把它賦值給一個新的變量(var query = obj.bookroomview .....')我怎麼能達到所有項目(RoomName,Satartdate ...)使用查詢?(對不起im初學者) – emmy