Я работаю над веб-интерфейсом и пытаюсь найти продукт по его имени с помощью icollection, в частности продукт, который будет соответствовать указанному имени (? Name = {name}).
В настоящее время у меня естьэто:
[HttpGet("name", Name = "GetProductByName")]
public ActionResult<Product> GetByName(string _name)
{
var prod = (from x in _context.Products
where x.Name == _name
select x).FirstOrDefault();
if (prod == null)
{
return NotFound();
}
return prod;
}
Но всякий раз, когда я запрашиваю API (api / product /? name = {name}, я получаю все результаты
Что я делаю не так?
РЕДАКТИРОВАТЬ: Остаток контроллера, поскольку это не несоответствие параметров. Я использую EF DbSet
[Route("api/Product")]
[ApiController]
public class ProductController : ControllerBase
{
private readonly OrderingProductsContext _context;
public ProductController(OrderingProductsContext context)
{
_context = context;
}
[HttpGet]
public ActionResult<List<Product>> GetAll()
{
return _context.Products.ToList();
}
[HttpGet("{id}", Name = "GetProduct")]
public ActionResult<Product> GetById(long id)
{
var prod = _context.Products.Find(id);
if (prod == null)
{
return NotFound();
}
return prod;
}
[HttpPost]
public IActionResult Create(Product prod)
{
_context.Products.Add(prod);
_context.SaveChanges();
return CreatedAtRoute("GetProduct", new { id = prod.ID }, prod);
}