nos*_*os9 3 c# linq entity-framework
我在实体框架中使用WebAPI来创建新端点,我遇到了一些问题.我正在尝试使用Linq Where语句来获取我的数据,但是我收到以下错误.
'IQueryable'不包含'GetAwaiter'的定义,并且没有扩展方法'GetAwaiter'接受类型'IQueryable'的第一个参数可以找到(你是否缺少using指令或汇编引用?)
这是我的代码.
[ResponseType(typeof(Vocab))]
public async Task<IHttpActionResult> GetVocabByLesson(int lessonId)
{
Vocab vocab = await db.Vocabs.Where(a => a.LessonId == lessonId);
if (vocab == null)
return NotFound();
return Ok(vocab);
}
Run Code Online (Sandbox Code Playgroud)
oct*_*ccl 16
使用FirstOrDefaultAsync扩展方法:
[ResponseType(typeof(Vocab))]
public async Task<IHttpActionResult> GetVocabByLesson(int lessonId)
{
Vocab vocab = await db.Vocabs.FirstOrDefaultAsync(a => a.LessonId == lessonId);
if (vocab == null)
return NotFound();
return Ok(vocab);
}
Run Code Online (Sandbox Code Playgroud)
通过你的代码我可以扣除你想要只返回一个元素,这就是我建议使用的原因FirstOrDefaultAsync.但是如果你想获得满足某些条件的多个元素,那么使用ToListAsync:
[ResponseType(typeof(Vocab))]
public async Task<IHttpActionResult> GetVocabByLesson(int lessonId)
{
var result= await db.Vocabs.Where(a => a.LessonId == lessonId).ToListAsync();
if (!result.Any())
return NotFound();
return Ok(result);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11517 次 |
| 最近记录: |