我创建了一个.NET Core API,我的所有方法都是异步的,但是有一种要求,例如GetBalance()
仅返回一个实体(记录)。
我无法使用SingleOrDefaultAsync()
,出现类似的错误未包含对此的定义。
我正在使用简单的基本EF Code First方法,没有存储库模式。
这是我的代码示例。
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);
*/
}
更多说明
在我的项目中引用Entityframework。 (.NET Core)
答案 0 :(得分:3)
得到刚安装的解决方案!
安装包Microsoft.EntityFrameworkCore.Tools 在我的.net核心项目中,它开始工作...谢谢大家的评论。
原因:
System.Linq命名空间确实支持ToListAsync(),ToAsyncEnumerable(),FindAsync()和SaveChangesAsync()
要使用FirstOrDefaultAsync()和SingleOrDefaultAsync()方法,我们必须安装此软件包。
再次感谢。
答案 1 :(得分:1)
EF Core异步扩展方法在Microsoft.EntityFrameworkCore命名空间中定义。必须导入该名称空间才能使方法可用。