如何过滤从数据库中填充的SelectList?在这个例子中,我只想要在列表中显示白色兔子(颜色是兔子对象上的属性)。我试图在Select的末尾添加一个位置,但我只能看到Id和Name作为我可以过滤的条件。
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");
答案 0 :(得分: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 :(得分:0)
您可以更轻松地过滤
ViewBag.RoomList = new SelectList(db.rooms.Where(p => p.hotel_id == 626191), "room_id", "title");