我的ASP.net Core 6 API web应用程序中似乎无法克服这个错误。
我的httpget()
// GET: api/Shippingschedules/shipname
[HttpGet("{shipname}")]
public async Task<ActionResult<Shippingschedule>> GetShippingSchedulesByShip(string shipname)
{
ActionResult<Shippingschedule> Shippingschedule = await _context.Shippingschedules.Where(
x => x.Text.Contains(shipname)).ToListAsync(); //.FirstOrDefaultAsync();
if (Shippingschedule == null)
{
return NotFound();
}
return Shippingschedule;
}
但如果将ToListAsync()
替换为FirstOrDefaultAsync()
,则它会编译。为什么?
我正在努力把它找到的所有唱片都带回来,而不仅仅是第一张。我做错了什么?
感谢
FirstOrDefaultAsync()
之所以有效,是因为它只返回一条记录,而ToListAsync()
则返回该记录的集合。
将ActionResult<Shippingschedule>
更改为IEnumerable<ShippingSchedule>
,.ToListAsync()
应该可以工作。此外,将api的返回类型从Task<ActionResult<Shippingschedule>>
更改为Task<ActionResult<IEnumerable<Shippingschedule>>>
[HttpGet("{shipname}")]
public async Task<ActionResult<IEnumerable<Shippingschedule>>> GetShippingSchedulesByShip(string shipname)
{
IEnumerable<ShippingSchedule> Shippingschedule = await _context.Shippingschedules.Where(
x => x.Text.Contains(shipname)).ToListAsync(); //.FirstOrDefaultAsync();
if (Shippingschedule == null)
{
return NotFound();
}
return Shippingschedule;
}