Entity Framework 7 colecciones asíncronas

entity-framework-core

Pregunta

¿Dónde está ToListAsync () en Entity Framework 7. Cómo devuelvo una colección o SingleOrDefault usando métodos asíncronos en EF 7?

 public async Task<IEnumerable<TodoItem>> GetAllAsync()
    {   
        //TODO: ToListAsync missing?         

        return await _context.Todos.ToAsyncEnumerable();
    }

Esto está devolviendo un error no contiene la definición para GetAwaiter? SaveChangesAsync no es ningún problema.

Respuesta popular

Espacio de nombres Microsoft.EntityFrameworkCore

El espacio de nombres Microsoft.EntityFrameworkCore incluye los métodos de extensión async . Ese espacio de nombres está en el paquete Microsoft.EntityFrameworkCore . Aquí está la fuente en GitHub y aquí están sus métodos de extensión async .

  • AnyAsync()
  • AllAsync()
  • CountAsync()
  • LongCountAsync()
  • FirstAsync()
  • FirstOrDefaultAsync()
  • LastAsync()
  • LastOrDefaultAsync()
  • SingleAsync()
  • SingleOrDefaultAsync()
  • MinAsync()
  • MaxAsync()
  • SumAsync()
  • AverageAsync()
  • ContainsAsync()
  • ToListAsync()
  • ToArrayAsync()
  • LoadAsync()
  • ToDictionaryAsync()
  • ForEachAsync()

Ejemplo de uso

proyecto.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();
        }
    }
}


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué