【问题标题】:Why Entity Framework Core 2.2 FirstOrDefaultAsync method not found?为什么找不到 Entity Framework Core 2.2 FirstOrDefaultAsync 方法?
【发布时间】:2019-07-19 23:11:02
【问题描述】:

我正在使用以下内容制作 Web 应用程序 -

  1. ASP.NET 核心
  2. 实体框架核心
  3. SQlite 数据库
  4. Angular SPA (ng 7)

我已经制作了一个名为 User 的模型,它的一些属性如下 -

public class User
{
    public int Id { get; set; }
    public string UserName { get; set; }
    public byte[] PasswordHash { get; set; }
    public byte[] PasswordSalt { get; set; }
}

我选择的是模型优先方法并迁移数据以相应地创建表

public DbSet<User> Users { get; set; }

但是每当我试图找到具有以下内容的用户时-

public async Task<User> Login(string userName, string password)
{
  var user = await _context.Users.
}

它没有显示 FirstOrDefaultAsync 方法。我很困惑为什么它会这样显示我?

以下是我用于 API 项目的版本 -

<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.2" />

【问题讨论】:

  • 你得到FirstOrDefault方法了吗?如果添加var user = _context.Students.FirstOrDefaultAsync()using Microsoft.EntityFrameworkCore;,构建你的项目,会不会报错?
  • @Tao Zhou,它没有显示 FirstOrDefault。但我找到了 Add(),AddRange(),Find(),FindAsync() 等。
  • 是否有任何演示可以重现您的问题?它应该与using Microsoft.EntityFrameworkCore; 存在。
  • 是的,它有效。感谢您的帮助。

标签: c# angular typescript sqlite asp.net-core-webapi


【解决方案1】:

如果有像我这样的菜鸟偶然发现这个问题,我只需要添加:

使用 System.Linq;

【讨论】:

【解决方案2】:

没有异步版本的 LINQ 运算符,例如 Where(...)、OrderBy(...) 等,因为这些方法仅构建 LINQ 表达式树,不会导致查询在数据库。

See in Microsoft Document

【讨论】:

    【解决方案3】:

    您忘记添加对实体框架核心'using Microsoft.EntityFrameworkCore;'的引用

    提示:如果您点击 CTRL+.,它应该会立即显示修复。

    【讨论】:

    • 我不这么认为。
    • 您是否 var user = await _context.Users.FirstOrDefaultAsync() 并按下该键绑定但没有任何显示?
    • 是的,我正在这样做,但我没有找到 FirstOrDefaultAsync() 方法。
    • 也许 Visual Studio 出了问题,无法跟踪您的包,尝试清理您的解决方案关闭 Visual Studio 并重新打开它并尝试再次构建,然后应用答案中提到的提示
    • 我清理了 Visual Studio Code 并重新打开项目。但它仍然没有显示该方法。但它显示了其他方法,但没有显示 FirstOrDefault() 和 FirstOrDefaultAsync()
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多