从DB过滤数据

时间:2017-11-02 07:36:11

标签: c# asp.net-mvc linq

我创建了一些可供用户使用的过滤器。因此,用户可以向我发送价值或者可以。如何检查用户是否向我发送了值或仅为null?现在我这样检查它,它的工作,但这不是理想的解决方案:

Drawable drawable = ContextCompat.getDrawable(this, R.drawable.fade_red);
dataset.setFillDrawable(drawable);

2 个答案:

答案 0 :(得分:0)

你可以尝试这样的东西,我也看到它经常在存储过程中使用(我添加了前三个搜索选项,但你可以添加任意多个):

    Public ActionResult Index(int? searchStuff, int? searchCustomer, int? searchWorker)
    {
        myOrders = db.Orders
            .Where(o => (searchStuff == null || o.StuffId == searchStuff)
                     && (searchCustomer == null || o.CustomerId == searchCustomer)
                     && (searchWorker == null || o.WorkerId == searchWorker));
    }

答案 1 :(得分:0)

我做了以下事情:

var stuff = db.Orders.AsQueryable();
if(searchStuff.HasValue)
{
    stuff = stuff.Where(x=>x.stuffId == searchStuff.Value);
}
if(searchCustomer.hasValue)
{
    stuff = stuff.Where(x=>x.CustomerId == searchCustomer.Value);
}

以此类推。使用这种方法,您可以执行更复杂的过滤器,例如日期范围。