如何使用Linq创建过滤器?

要不然

我的MVC视图当前显示以下内容

在此处输入图片说明

我想根据用户选择使用linq执行过滤,因此我只能显示过滤的结果。

我的控制器就像

var Products = db.Products.AsQueryable();

public class FilterPageViewModel
{
    public int?[] man { get; set; }
    public int?[] size { get; set; }
    public int?[] color { get; set; }
    public decimal? minPrice { get; set; }
    public decimal? maxPrice { get; set; }
    public Sorting Sorting {get ; set; }
    public Order Order {get; set; }
}

public ActionResult Index(int? CategoryID = 0, 
                          int? page = 0,
                          FilterPageViewModel model = null)
{

    //Manufacturer #############################################
    if (model.man != null) 
    {
        foreach (int? i in model.man) 
        {
            if (i.HasValue) 
            {
                //Do something here
            }
        }
    }

    //Size ######################################################
    if (model.size != null)
    {
        foreach (int? i in model.size)
        {
            if (i.HasValue)
            {
                //Do something here
            }
        }
    }

    //Color ######################################################
    if (model.color != null)
    {
        foreach (int? i in model.color)
        {
            if (i.HasValue)
            {
                //Do something here
            }
        }
    }
}

我想我应该执行类似...

Where Brand is 'Nike' OR 'Salomon' 
AND Size is 'L' OR 'XL' OR 'XXL'
AND Color is 'Red' OR 'Green' OR 'Blue'

当然,上面的“”中的文本是ID,为澄清起见将其替换。

很抱歉,如果我没有说清楚自己的意思,但是我的母语不是英语。

乔纳森·蔡斯(Jonathon Chase)

您可以按照以下方式执行某些操作,因为您有一个Linq to SQL的IQueryable提供程序。

var filteredProducts = Products;
if(model.man != null)
    filteredProducts = filteredProducts.Where(x => (from man in model.man where man.HasValue() select man.Value).Contains(x.manId));
if(model.size != null)
    filteredProducts = filteredProducts.Where(x => (from size in model.size where size.HasValue() select size.Value).Contains(x.sizeId));
//etc
var enumerate = filteredProducts.ToList();

因为您正在使用IQueryable,所以直到您使用ToList()之类的调用实际枚举对象或将其插入foreach时,才会对过滤器进行评估。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Linq过滤器创建列表

来自分类Dev

如何使用jQuery创建过滤器控件?

来自分类Dev

如何使用PHP和MySQL创建搜索“过滤器”

来自分类Dev

如何使用引导程序和jQuery创建过滤器

来自分类Dev

使用Linq的异步Where过滤器

来自分类Dev

使用Gmail API创建过滤器

来自分类常见问题

如何使用Docker图像过滤器

来自分类Dev

如何使用Jquery过滤器?

来自分类Dev

如何使用rxjs中的过滤器

来自分类Dev

如何使用SaveFileDialog的过滤器

来自分类Dev

如何使用javascript过滤器功能

来自分类Dev

如何使用ffmpeg removelogo过滤器

来自分类Dev

DirectShow示例过滤器:如何使用?

来自分类Dev

ngGrid如何在多个列(例如Excel数据过滤器)上创建过滤器?

来自分类Dev

如何在 angular2 中创建独特的过滤器过滤器组件

来自分类Dev

创建过滤器功能

来自分类Dev

在Linq的外部联接中使用过滤器

来自分类Dev

使用基于子项的Lambda / Linq过滤器父集合

来自分类Dev

如何使用基本适配器在android中创建自定义过滤器?

来自分类Dev

在Angular JS中,当对ng-options使用select过滤器时。如何创建“全部”选项?

来自分类Dev

如何使用ActiveAdmin(Formtastic)创建动态填充的选择(下拉)过滤器

来自分类Dev

如何使用jQuery为表格创建下拉列表过滤器?

来自分类Dev

icCube-MDX-如何使用名为“ MONTH”的按钮在直方图中创建过滤器

来自分类Dev

如何通过使用带有谓词的某种过滤器来创建对象列表

来自分类Dev

如何使用Angular在日期范围内创建搜索过滤器?

来自分类Dev

如何使用从USERNAME()函数传入的单个值创建复杂的过滤器

来自分类Dev

在Angular JS中,当对ng-options使用select过滤器时。如何创建“全部”选项?

来自分类Dev

如何使用angularjs为ng-repeat列表创建复选框过滤器?

来自分类Dev

如何在 Angular/Express/MongoDB 中使用过滤器创建搜索?

Related 相关文章

  1. 1

    从Linq过滤器创建列表

  2. 2

    如何使用jQuery创建过滤器控件?

  3. 3

    如何使用PHP和MySQL创建搜索“过滤器”

  4. 4

    如何使用引导程序和jQuery创建过滤器

  5. 5

    使用Linq的异步Where过滤器

  6. 6

    使用Gmail API创建过滤器

  7. 7

    如何使用Docker图像过滤器

  8. 8

    如何使用Jquery过滤器?

  9. 9

    如何使用rxjs中的过滤器

  10. 10

    如何使用SaveFileDialog的过滤器

  11. 11

    如何使用javascript过滤器功能

  12. 12

    如何使用ffmpeg removelogo过滤器

  13. 13

    DirectShow示例过滤器:如何使用?

  14. 14

    ngGrid如何在多个列(例如Excel数据过滤器)上创建过滤器?

  15. 15

    如何在 angular2 中创建独特的过滤器过滤器组件

  16. 16

    创建过滤器功能

  17. 17

    在Linq的外部联接中使用过滤器

  18. 18

    使用基于子项的Lambda / Linq过滤器父集合

  19. 19

    如何使用基本适配器在android中创建自定义过滤器?

  20. 20

    在Angular JS中,当对ng-options使用select过滤器时。如何创建“全部”选项?

  21. 21

    如何使用ActiveAdmin(Formtastic)创建动态填充的选择(下拉)过滤器

  22. 22

    如何使用jQuery为表格创建下拉列表过滤器?

  23. 23

    icCube-MDX-如何使用名为“ MONTH”的按钮在直方图中创建过滤器

  24. 24

    如何通过使用带有谓词的某种过滤器来创建对象列表

  25. 25

    如何使用Angular在日期范围内创建搜索过滤器?

  26. 26

    如何使用从USERNAME()函数传入的单个值创建复杂的过滤器

  27. 27

    在Angular JS中,当对ng-options使用select过滤器时。如何创建“全部”选项?

  28. 28

    如何使用angularjs为ng-repeat列表创建复选框过滤器?

  29. 29

    如何在 Angular/Express/MongoDB 中使用过滤器创建搜索?

热门标签

归档