无法解析 .Net Core Web API 中的符号 "FirstOrDefaultAsync"
Can't resolve symbol "FirstOrDefaultAsync" in .Net Core Web API
我正在构建一个 .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 识别该方法?
您必须将 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);
我正在构建一个 .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 识别该方法?
您必须将 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);