2015-01-07 58 views
2

如何過濾從數據庫填充的SelectList?在這個例子中,我只想要白色兔子(顏色是bunnies對象上的屬性)顯示在列表中。我試圖在Select的末尾添加一個位置,但我只能將Id和Name視爲可以過濾的條件。從數據庫中過濾一個MVC SelectList

var bunnies = db.Bunnies.Select(x => new SelectListItem 
                { 
                 Value = x.Id.ToString(), 
                 Text = x.Name, 

                } 
                ); 
     return new SelectList(bunnies , "Value", "Text"); 

我想我可以做這樣的事情:

var bunnies = db.Bunnies.Select(x => new SelectListItem 
                { 
                 Value = x.Id.ToString(), 
                 Text = x.Name, 

                } 
                ).Where(p => p.Color == "white"); 
     return new SelectList(bunnies , "Value", "Text"); 

回答

6

不像在SQL中,LINQ的Where條款往往之前來Select條款(除非你想,只有對那些過濾字段,您已在Select子句中預測出):

var bunnies = db.Bunnies.Where(p => p.Color == "white") 
         .Select(x => new SelectListItem 
             { 
              Value = x.Id.ToString(), 
              Text = x.Name, 
             }); 
1

您可以在此ea中過濾sier way

ViewBag.RoomList = new SelectList(db.rooms.Where(p => p.hotel_id == 626191), "room_id", "title");