Entity Framework 7中的ToListAsync()在哪里。如何在EF 7中使用异步方法返回集合或SingleOrDefault。
public async Task<IEnumerable<TodoItem>> GetAllAsync()
{
//TODO: ToListAsync missing?
return await _context.Todos.ToAsyncEnumerable();
}
这返回一个错误,其中不包含GetAwaiter的定义? SaveChangesAsync没有问题。
最佳答案
Microsoft.EntityFrameworkCore
命名空间Microsoft.EntityFrameworkCore
命名空间包括async
扩展方法。该 namespace 在Microsoft.EntityFrameworkCore
包中。这是the source on GitHub,这是其async
扩展方法。
AnyAsync()
AllAsync()
CountAsync()
LongCountAsync()
FirstAsync()
FirstOrDefaultAsync()
LastAsync()
LastOrDefaultAsync()
SingleAsync()
SingleOrDefaultAsync()
MinAsync()
MaxAsync()
SumAsync()
AverageAsync()
ContainsAsync()
ToListAsync()
ToArrayAsync()
LoadAsync()
ToDictionaryAsync()
ForEachAsync()
用法示例
project.json
"Microsoft.EntityFrameworkCore": "1.0.0",
ApplicationUserRepository.cs
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace MyApplication.Models {
public class ApplicationUserRepository : IApplicationUserRepository
{
private ApplicationDbContext _dbContext;
public ApplicationUserRepository(ApplicationDbContext dbContext) {
_dbContext = dbContext;
}
public async Task<ApplicationUser> Find(Guid id)
{
return await _dbContext.Users.SingleAsync(u => u.Id == id);
}
public async Task<IEnumerable<ApplicationUser>> GetAll()
{
return await _dbContext.Users.ToListAsync();
}
}
}
关于entity-framework-core - Entity Framework 7异步集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34953189/