Hemos investigando en distintos sitios y así darte la respuesta a tu inquietud, si tienes alguna duda déjanos tu pregunta y respondemos con gusto.
Solución:
Está ahí para que sea más fácil para una etapa posterior implementar llamadas de código asíncrono sin tener que alterar la firma, evitando así tener que refactorizar el código de llamada.
Si bien el código de muestra con scaffolding es síncrono, Template Studio está diseñado específicamente en torno a un asíncrono capa de acceso a datos, se espera que implemente su propio acceso a datos modificando el cuerpo de los métodos generados.
Si el asíncrono implementación fueron NO implementada, habría cambios de código significativos en toda la aplicación con plantilla y sería una curva de aprendizaje muy pronunciada para los nuevos desarrolladores, el objetivo de la plantilla es ponerse en marcha con el mínimo esfuerzo o incluso experiencia.
Otra opción sería quitar el async
palabra clave de la firma del método y esa línea y hacer
return Task.FromResult>(data);
Verá esta construcción cuando necesite devolver una tarea esperable debido a una interfaz, por ejemplo, mientras que la implementación no tiene trabajo asincrónico que hacer.
Sin embargo, en este caso, dado que es una plantilla, esperan que las personas reemplacen la await Task.Completed
con algo como await FetchDataFromDatabaseAsync();
. Desde el async
la palabra clave ya está allí, minimiza los cambios necesarios para implementar su propia llamada asíncrona.
De todos modos, sin esta construcción de espera, puedes hacer esto:
public class SampleModelService
public Task> GetDataAsync()
var data = new List();
data.Add(new SampleModel
Title = "Lorem ipsum dolor sit 1",
Description = "Lorem ipsum dolor sit amet",
Symbol = Symbol.Globe
);
data.Add(new SampleModel
Title = "Lorem ipsum dolor sit 2",
Description = "Lorem ipsum dolor sit amet",
Symbol = Symbol.MusicInfo
);
return Task.FromResult>(data);
Si no hay ningún requisito para devolver una tarea (no tiene ningún código asíncrono), simplemente elimínelo por completo. (Pero luego tienes que refactorizar el código que llama a este método)
Al revisar este código, sospecho que alguien llamará a un método asíncrono más adelante en el proceso de desarrollo y ya lo anticipé al especificar que este método devuelve un Task
.
valoraciones y reseñas
Si haces scroll puedes encontrar las notas de otros sys admins, tú igualmente tienes la libertad de dejar el tuyo si te gusta.