Web api GET(全部),带有SQL Server中的可选参数

本文关键字:Server 参数 SQL 带有 GET api 全部 Web | 更新日期: 2023-09-27 18:28:10

我正在创建一个具有多个可选参数的Web API GET(all)方法。我首先尝试使用1个参数,但最终我想要5个可选参数。从1个参数开始,我有两种情况:参数已填写,参数未填写。

中填写了参数

from r in db.requests
where r.status == status
select new Models.Request

中未填写参数

from r in db.requests
select new Models.Request

我无法将这两种情况结合起来,所以我的问题是:如何将这两种情况结合起来?

控制器

public IEnumerable<Request> Get(string status = "")
    {
        var requests = from r in db.requests
                       //where r.status == status
                       select new Models.Request
                       {
                           ID = r.ID,
                           ...more properties
                           };
            return (IEnumerable<Request>)requests;
    }

路线

protected void Application_Start()
    {
        RouteTable.Routes.MapHttpRoute(
        name: "API Default",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional });
    }

Web api GET(全部),带有SQL Server中的可选参数

尝试以下代码:

from r in db.requests
where r.status == status || status == ""
select new Models.Request

如果状态为空字符串,则表达式的第二部分为true,并且无论第一部分的值如何,都将返回所有项。否则,表达式的第一部分将过滤结果集。