6

Sto usando EF 6.1.1 e Database First. Quando importo un proc memorizzato nella edmx e generare il DbContext sembra che questo:EntityFramework Stored Proc Function Importa è possibile leggere async?

return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<TestSP_Result>("TestSP", params[]...) 

che restituisce un ObjectResult < T>, che implementa IDbAsyncEnumerable < T> in modo che sto facendo questo per leggere l'asincrona dei dati :

Si sta veramente leggendo i dati in modo asincrono? Ho allegato il profiler e l'istruzione SQL effettiva viene eseguita nella riga ExecuteFunction, non quando si enumerano i risultati.

Esiste un modo corretto per eseguire un processo memorizzato da DBContext e leggere i risultati in modo asincrono?

+0

Ecco un altro modo per realizzare ciò che il vostro cercando di fare. http://stackoverflow.com/questions/19250599/how-do-i-kick-off-an-entity-stored-procedure-in-ef6-async-and-not-wait-for-a-ret –

+0

@JasonFoglia, FYI: tutta la soluzione collegata fa in coda il lavoro sincrono su un altro thread del thread, non realizza ciò che è stato chiesto. – TravisWhidden

risposta

12

come lo faccio:

var results = await ctx.Database.SqlQuery<TResult>("EXEC sp_foo {0}, {1}", p1, p2) 
        .ToArrayAsync(); 
Problemi correlati