【问题标题】:Why is there no SingleOrDefaultAsync for IQueryables?为什么 IQueryables 没有 SingleOrDefaultAsync?
【发布时间】:2021-01-25 22:00:29
【问题描述】:

以下代码无法编译,因为 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。请忽略我在这里所做的事情。我只是想让事情变得比我的项目中的实际情况更容易。

【问题讨论】:

    标签: c# entity-framework async-await


    【解决方案1】:

    确保您已将 System.Data.Entity 命名空间添加到您的使用中。这是一种扩展方法,在您添加适当的命名空间之前它不可用。

    【讨论】:

    • 天哪。我太傻了。哈哈。谢谢谢尔盖。只见树木不见森林!
    【解决方案2】:

    我通过添加using Microsoft.EntityFrameworkCore;修复了它

    【讨论】:

      【解决方案3】:

      试试:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 2015-06-20
        • 2010-12-10
        • 2014-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多