【发布时间】:2023-01-09 00:08:56
【问题描述】:
我实际上面临一个奇怪的问题。我实际上是想通过查找特定的 id 返回数据列表。一切都应该有效,但我不明白为什么我会遇到这个烦人的错误。这是我的代码: 订单.cs
public class order
{
public int Id { get; set; }
public int? Seid { get; set; }
public AppUser Seuser { get; set; }
public int? Reid { get; set; }
public AppUser Reuser { get; set; }
public string Status { get; set; }
}
控制器
[HttpGet]
public async Task <ActionResult<IEnumerable<order>>>GetOrder()
{
var currentuserid = int.Parse(User.GetUserId());
var r = await _orderRepository.GetOrders(currentuserid);
if(r!=null)
{
return Ok(r);
}
return BadRequest();
}
订单库
public async Task<IEnumerable<order>> GetOrders(int id)
{
return await _context.Orders.Where(x => x.Seid == id).ToList(); //here mainly found error when added await
}
错误
'List<order>' does not contain a definition for 'GetAwaiter' and no accessible extension method 'GetAwaiter' accepting a first argument of type 'List<order>' could be found (are you missing a using directive or an assembly reference?) [API]csharp(CS1061)
当我将 await 删除到这行代码时:- return await _context.Orders.Where(x => x.Seid == id).ToList(); 然后错误消失了。但是当我运行我的应用程序时,我发现这个 await 案例有一个不同的错误。我是一个绝对的初学者。我如何解决这个问题。
【问题讨论】:
-
如果保留
await并删除.ToList()会怎样? -
旁注,研究 Lists、IEnumerable 和 IQueryable 之间的区别是一件好事。
-
@gunr2171 保持等待并删除 .Tolist() 后出现同样的错误
-
ToList->ToListAsync? -
新错误:-
IQueryable<order>' does not contain a definition for 'ToListAsync' and no accessible extension method 'ToListAsync'
标签: c# asp.net-mvc asp.net-core async-await entity-framework-core