简体   繁体   English

如何在异步中使用FirstOrDefaultAsync()等待Web API

[英]How to use FirstOrDefaultAsync() in async await WEB API's

I have created one .NET Core API , where my all methods are asynchronous but there is one requirement like GetBalance() which just return one entity (record) only. 我创建了一个.NET Core API,其中所有方法都是异步的,但是有一项要求,例如GetBalance() ,它仅返回一个实体(记录)。

I am not able to using SingleOrDefaultAsync() , getting error like does not contain a definition for this. 我无法使用SingleOrDefaultAsync() ,出现类似错误,但不包含对此的定义。

I am using simple basic EF Code First approach with no Repository pattern. 我正在使用没有存储库模式的简单基本EF Code First方法。

Here is my code example. 这是我的代码示例。

public async Task<ResponseBalanceModel> GetBalanceFor(int accountNumber)
{
    var result = await _dbContext.Accounts.Where(x => 
             x.AccountNumber == accountNumber)
             .SingleOrDefaultAsync(); // this is not working.

    /*Below tried code are not working. 
    var result1 = await _dbContext.Accounts.Where(x => x.AccountNumber == accountNumber).SingleOrDefaultAsync();

    var result2 = await _dbContext.Accounts.FirstOrDefaultAsync(x => x.AccountNumber == accountNumber);
    */
 }

For more clarification 进一步澄清

在此处输入图片说明

Reference of Entityframework in my project. 在我的项目中参考Entityframework。 (.NET Core) (.NET Core)

在此处输入图片说明

Got the solution just installed! 得到了刚刚安装的解决方案!

Install-Package Microsoft.EntityFrameworkCore.Tools in my .net core project and it start working... Thank you all guys for your comments. 在我的.net核心项目中安装Pack。Microsoft.EntityFrameworkCore.Tools,它开始工作...谢谢大家的评论。

Reason : 原因:

  1. System.Linq namespace does support ToListAsync(), ToAsyncEnumerable(), and FindAsync() and SaveChangesAsync() System.Linq命名空间确实支持ToListAsync(),ToAsyncEnumerable(),FindAsync()和SaveChangesAsync()

  2. To work with FirstOrDefaultAsync() and SingleOrDefaultAsync() method we have to install this package. 要使用FirstOrDefaultAsync()和SingleOrDefaultAsync()方法,我们必须安装此软件包。

Thanks again. 再次感谢。

The EF Core async extension methods are defined in the Microsoft.EntityFrameworkCore namespace. EF Core异步扩展方法在Microsoft.EntityFrameworkCore命名空间中定义。 This namespace must be imported for the methods to be available. 必须导入该名称空间才能使方法可用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM