- Microsoft recomienda que las funciones que usan la base de datos sean asincrónicas.
public static List<Venta> ObtenerVentas()
{
var resultado = new List<Venta>();
using(var con=new Contexto())
{
resultado = con.Ventas.Include(v => v.IdProductoNavigation).ToList();
}
return resultado;
}
asincronica
public static async Task<List<Venta>> ObtenerVentasAsync()
{
var resultado = new List<Venta>();
using (var con = new Contexto())
{
resultado = await con.Ventas.Include(v => v.IdProductoNavigation).ToListAsync();
}
return resultado;
}
- Se puede controlar los errores, pero seria bueno realizar el control de error en la clase de controlador.
- En clase de repositorio genere mis propios errores, incluyendo errores de lógica.
- Las funciones pueden devolver el tipo de dato que yo quiero, o una "Acción".
Antes:
public async Task<Venta> Agregar(Venta venta)
{
//
}
Después:
public async Task<ActionResult<Venta>> Agregar(Venta venta)
{
//
}
ActionResult permite devolver un acción web, tales como un mensaje de error o una redirección.