为什么IQueryables没有SingleOrDefaultAsync?

时间:2014-06-17 09:03:17

标签: c# entity-framework async-await

以下代码无法编译,因为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 个答案:

答案 0 :(得分:16)

确保为您的使用添加了System.Data.Entity命名空间。这是一种扩展方法,只有在添加适当的命名空间后才可用。

答案 1 :(得分:2)

我通过添加using Microsoft.EntityFrameworkCore;

来修复它

答案 2 :(得分:0)

试试:

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

// 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