异步Db请求中的两次输入

时间:2019-10-07 09:16:04

标签: asp.net .net entity-framework pomelo-entityframeworkcore-mysql

以下代码给出了2个条目,但至少应有一个。

 /// <inheritdoc />
  public async Task<T> GetAsync<T>(Guid id, CancellationToken cancellationToken)
     where T : class
  {
     var entity = await Set<T>().FindAsync(new[] { id }, cancellationToken);

     return entity ?? throw new NotFoundException(typeof(T).Name, id);
  }

给定的实体用“单个”签名,因此只允许一个实体从数据库取回。

复制步骤

调用GetAsync(model.Id,cancellingToken)接收至少一个数据。 数据库表仅包含一行,应将其返回。

其他技术细节

EF核心版本:3.0 数据库提供程序:Pomelo.EntityFrameworkCore.MySql 目标框架:.Net Core 3.0 作业系统:Mac OS IDE:骑士

1 个答案:

答案 0 :(得分:1)

您需要使用DbSet.FindAsync(...)方法。

在您的情况下,cancellationToken被解释为params object[] keyValues参数的第二项。