public static T ObtenerPorId <T>(int id) where T : class { var ctx = new TaskDbContext(); var elemento = ctx.Set <T>().Find(id); return(elemento != null ? elemento : (T)Activator.CreateInstance(typeof(T))); }
public static void Borrar <T>(int id) where T : class { var ctx = new TaskDbContext(); T elementoABorrar = ObtenerPorId <T>(id); if (!elementoABorrar.Equals((T)Activator.CreateInstance(typeof(T)))) { ctx.Set <T>().Remove(elementoABorrar); ctx.SaveChanges(); } }
public static void Actualizar <T>(T elemento, int id) where T : class { var ctx = new TaskDbContext(); var propiedades = elemento.GetType().GetProperties(); T elementoActual = ctx.Set <T>().Find(id); if (!elementoActual.Equals((T)Activator.CreateInstance(typeof(T)))) { foreach (var prop in propiedades) { if (prop.Name != "Id") { elementoActual.GetType().GetProperty(prop.Name).SetValue(elementoActual, elemento.GetType().GetProperty(prop.Name).GetValue(elemento, null), null); } } ctx.SaveChanges(); } }
public static List <T> ObtenerPorExpresion <T>(Expression <Func <T, bool> > expresion) where T : class { var ctx = new TaskDbContext(); return(ctx.Set <T>().Where(expresion).ToList()); }
public static List <T> ObtenerTodo <T>() where T : class { var ctx = new TaskDbContext(); return(ctx.Set <T>().ToList <T>()); }