c# - 从数据库中过滤 MVC SelectList

标签 c# asp.net-mvc linq linq-to-sql

如何过滤从数据库中填充的 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");

最佳答案

与 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,
                                         });

关于c# - 从数据库中过滤 MVC SelectList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27827527/

相关文章:

c# - 是否有 Visual Studio 键盘快捷键来实现委托(delegate)?

c# - 该系统找不到指定的路径

c# - 更改@Html.EditorFor/自定义模板类 | ASP.NET MVC 4

ruby-on-rails - bool REST 结果的最佳实践

ajax - 过滤时,如何发布 SearchModel,但在 View 中获取不同的 ResultsModel

c# - 在 C# 中合并和更新两个列表

c# - 使用 LINQ to XML,如何根据序号位置连接两组数据?

c# - 聚合和区分 linq 查询输出以列出

c# - 使用 LINQ 填充列表

c# - Java 为 C# 表达式提供了哪些替代方案?