如何在ASP.NET C# Web API 2控制器中实现按SalesmanId查询的接口
ASP.NET Web API 2 按SalesmanId查询接口实现方案
你现有代码仅支持查询全量订单、按主键ID查询单条订单,如需新增按SalesmanId查询的接口,可按以下步骤操作:
1. 确认前置配置
确保你的WebApiConfig.cs文件中已开启属性路由支持,在注册方法中添加如下代码:
config.MapHttpAttributeRoutes();
同时确认EF实体PrbSalesOrderTable中已正确映射数据库中的SalesmanId字段,字段类型和数据库保持一致。
2. 新增查询接口
推荐使用属性路由明确接口规则,在控制器中添加如下代码:
// 按SalesmanId查询关联的所有订单 [HttpGet] [Route("api/Transaksi/Salesman/{salesmanId:int}")] [ResponseType(typeof(IEnumerable<PrbSalesOrderTable>))] public IHttpActionResult GetOrdersBySalesmanId(int salesmanId) { // 参数合法性校验 if(salesmanId <= 0) { return BadRequest("SalesmanId参数不合法"); } // 按条件查询 var orderList = db.PrbSalesOrderTables.Where(x => x.SalesmanId == salesmanId).ToList(); if(!orderList.Any()) { return NotFound(); } return Ok(orderList); }
3. 接口调用说明
直接发送GET请求到api/Transaksi/Salesman/5即可查询SalesmanId为5的所有关联订单。
如果不想使用属性路由,也可以走默认路由规则,通过查询参数传值:
[ResponseType(typeof(IEnumerable<PrbSalesOrderTable>))] public IHttpActionResult GetBySalesmanId(int salesmanId) { if(salesmanId <= 0) { return BadRequest("SalesmanId参数不合法"); } var orderList = db.PrbSalesOrderTables.Where(x => x.SalesmanId == salesmanId).ToList(); if(!orderList.Any()) { return NotFound(); } return Ok(orderList); }
调用时发送GET请求到api/Transaksi?salesmanId=5即可。
内容的提问来源于stack exchange,提问作者Zulfa Assyfa
相关产品推荐
相关产品推荐

