Ich habe ein neues Feature in EF6, die asynchronen Methoden gesehen. Ich finde ein Beispiel.Was ist der Unterschied zwischen diesen beiden Async-Aufruf in EF?
Dieser erste Weg ist der normale Aufruf, mit EF5 zum Beispiel:
public Store FindClosestStore(DbGeography location)
{
using (var context = new StoreContext())
{
return (from s in context.Stores
orderby s.Location.Distance(location)
select s).First();
}
}
Und der neue Anruf, mit Asynchron-Methode in EF6.
public async Task<Store> FindClosestStore(DbGeography location)
{
using (var context = new StoreContext())
{
return await (from s in context.Stores
orderby s.Location.Distance(location)
select s).FirstAsync();
}
}
jedoch ich folgendes tun kann (die Syntaxis ca. ist, ich es durch den Speicher zu tun):
public async Task<Store> MyAsyncMethod(DbGeography location)
{
return await Task.Run(() => FindClosestStore());
}
ich meine, dass ich Task.Run können die erste Methode aufzurufen, das ist kein async, um das Ergebnis abzuwarten. Im Moment benutze ich Async jede Methode, nicht nur EF. Dies ist auch ein Async-Aufruf oder der wirklich asynchrone Aufruf ist, wenn ich die EF6-Async-Methode verwende?
Warum die asynchronen Methoden in der neuen Version von EF6 benötigt? Nur zur Einfachheit?
async und erwarten sind die syntaktischen Zucker, neu in .Net 4.5, können Sie das gleiche tun von Task mit ContinueWith –