Entity Framework 7 Collezioni asincrone

entity-framework-core

Domanda

Dove si trova ToListAsync () in Entity Framework 7. Come restituire una raccolta o SingleOrDefault utilizzando i metodi asincroni in EF 7.

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

        return await _context.Todos.ToAsyncEnumerable();
    }

Ciò restituisce un errore non contiene la definizione per GetAwaiter? SaveChangesAsync non presenta problemi.

Risposta popolare

Spazio dei nomi Microsoft.EntityFrameworkCore

Lo spazio dei nomi Microsoft.EntityFrameworkCore include i metodi di estensione async . Questo spazio dei nomi si trova nel pacchetto Microsoft.EntityFrameworkCore . Ecco la fonte su GitHub e qui ci sono i suoi metodi di estensione async .

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

Esempio di utilizzo

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


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché