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 });
}
尝试以下代码:
from r in db.requests
where r.status == status || status == ""
select new Models.Request
如果状态为空字符串,则表达式的第二部分为true,并且无论第一部分的值如何,都将返回所有项。否则,表达式的第一部分将过滤结果集。