无法将类型 'System.Collections.Generic.List<>' 隐式转换为 'Microsoft.AspNetCore.Mvc.ActionResult<>'
Cannot implicitly convert type 'System.Collections.Generic.List<>' to 'Microsoft.AspNetCore.Mvc.ActionResult<>'
我似乎无法在我的 ASP.net Core 6 API 网络应用程序中解决这个错误。
我的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()
有效,因为它 return 只有一条记录,而 ToListAsync()
return 是记录的集合。
将 ActionResult<Shippingschedule>
更改为 IEnumerable<ShippingSchedule>
并且 .ToListAsync()
应该可以工作。此外,将 api 的 return 类型从 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;
}
我似乎无法在我的 ASP.net Core 6 API 网络应用程序中解决这个错误。
我的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()
有效,因为它 return 只有一条记录,而 ToListAsync()
return 是记录的集合。
将 ActionResult<Shippingschedule>
更改为 IEnumerable<ShippingSchedule>
并且 .ToListAsync()
应该可以工作。此外,将 api 的 return 类型从 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;
}