为什么IQueryables没有SingleOrDefaultAsync方法?

14

以下代码无法编译,因为SingleOrDefaultAsync()不适用于GetAppointments()。我只是想知道为什么...

以下代码无法编译,因为SingleOrDefaultAsync()不适用于GetAppointments()。我只是想知道为什么...

public IQueryable<Appointment> GetAppointments()
{
        return Context.Appointments;
}

public async Task<Appointment> GetAppointmentAsync(int appointmentId)
{
        return await GetAppointments().SingleOrDefaultAsync(a => a.ID == appointmentId);
}

我正在使用EF 6.0.0。请忽略我在这里做的具体内容。我只是试图让事情比我的项目中实际情况更容易。

3个回答

19

请确保您已将System.Data.Entity命名空间添加到您的usings中。这是一个扩展方法,只有在您添加了适当的命名空间后它才可用。


1
哦,我的天啊。我真是太蠢了。哈哈。谢谢Sergey。没看到森林只看到树木! - Ingmar

10

我通过添加 using Microsoft.EntityFrameworkCore; 来解决了这个问题。


2

尝试:

将以下语句添加到您正在使用的模块中:

// using Microsoft.EntityFrameworkCore;

然后使用.NET CLI。

dotnet add package Microsoft.EntityFrameworkCore.Tools --version <version-you-want> // if ommited the latest will be installed
dotnet restore
dotnet build

使用PM:

dotnet add package Microsoft.EntityFrameworkCore.Tools --version <version-you-want> // if omitted the latest will be installed
dotnet restore
dotnet build

或者包引用:

在您的项目.csproj文件中添加

 <ItemGroup>
       <PackageReference Include="Microsoft.EntityFrameworkCore" Version="<verion>" />
 </ItemGroup>

// in the CLI
dotnet restore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接