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 void insertarDatosIniciales() { // El codigo comentado se debe a que por tema de dependencia fui ejecutando de a partes tambien // por eso hay varios saveChanges. var ctx = new TaskDbContext(); OperacionesDB.InsertarSinGuardar <Usuario>(new Usuario { Clave = "12345", User = "******" }, ctx); OperacionesDB.InsertarSinGuardar <Usuario>(new Usuario { Clave = "45678", User = "******" }, ctx); OperacionesDB.InsertarSinGuardar <Usuario>(new Usuario { Clave = "34633", User = "******" }, ctx); //ctx.SaveChanges(); //Recurso recurso1 = new Recurso { UsuarioId = 1, Nombre = "Federico Santos" }; //Recurso recurso2 = new Recurso { UsuarioId = 3, Nombre = "Raul Soria" }; //Recurso recurso3 = new Recurso { Nombre = "Notebook" }; //Recurso recurso4 = new Recurso { Nombre = "Sala de Reuniones 2" }; //List<Recurso> listaRecursos = new List<Recurso>(); //listaRecursos.Add(recurso3); //listaRecursos.Add(recurso4); //OperacionesDB.InsertarSinGuardar<Recurso>(recurso1, ctx); //OperacionesDB.InsertarSinGuardar<Recurso>(recurso2, ctx); //OperacionesDB.InsertarSinGuardar<Recurso>(recurso3, ctx); //OperacionesDB.InsertarSinGuardar<Recurso>(recurso4, ctx); //ctx.SaveChanges(); //OperacionesDB.InsertarSinGuardar<Tarea>(new Tarea { Titulo = "Entrega del parcial", Estimacion = 2, ResponsableId = 1, Vencimiento = new DateTime(2020, 10, 11, 21, 30, 0) }, ctx); //OperacionesDB.InsertarSinGuardar<Tarea>(new Tarea { Titulo = "Reunion de Avance", Estimacion = 2, ResponsableId = 2, Vencimiento = new DateTime(2020, 10, 11, 21, 30, 0) }, ctx); //ctx.SaveChanges(); //OperacionesDB.InsertarSinGuardar<Detalle>(new Detalle { TareaId = 2, Tiempo = "11:30", Fecha = new DateTime(2020, 10, 11), Recursos= listaRecursos }, ctx); ctx.SaveChanges(); }
public static List <T> ObtenerTodo <T>() where T : class { var ctx = new TaskDbContext(); return(ctx.Set <T>().ToList <T>()); }
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 void InsertarSinGuardar <T>(T elemento, TaskDbContext ctx) where T : class { ctx.Add <T>(elemento); }