c# - 无法解析 .Net Core Web API 中的符号“FirstOrDefaultAsync”

我正在构建一个.Net Core Web API,并且在其中一个文件中,FirstOrDefaultAsync() 方法不起作用,尽管我在同一个项目的各种文件中使用它。我拥有所有必要的 NuGet 包和命名空间。其他 EFCore 方法(例如 SaveChangesAsync)似乎可以正常工作。

using Microsoft.EntityFrameworkCore;

...

public async Task<NoteDetailsVm> Handle(GetNoteBodyQuery query, CancellationToken cancellationToken)
{
    var entity = await _dbContext.FirstOrDefaultAsync(note => note.Id == query.Id, cancellationToken);
    ...
}

IDE 只是无法识别该方法。当我输入方法的名称时,命名空间会突出显示,实际上什么都没有发生。在同一个项目的另一个文件中,我有:

using Microsoft.EntityFrameworkCore;

...

public async Task<Unit> Handle(UpdateNoteCommand request, CancellationToken cancellationToken)
{
    var entity = await _dbContext.Notes.FirstOrDefaultAsync(note =>
        note.Id == request.Id, cancellationToken);
    ...
}

一切正常。

如何让 IDE 识别该方法?

回答1

您必须在 db 上下文代码中包含一个 ef dbset 名称

var entity = await _dbContext.Notes.FirstOrDefaultAsync(note => note.Id == query.Id, cancellationToken);

  //or
  var entity = await _dbContext.Set<Note>().FirstOrDefaultAsync(note => note.Id == query.Id, cancellationToken);

相似文章

随机推荐

最新文章