示例#1
0
        public void Add(IModelodata modelo)
        {
            DBModelo modeloTmp = new DBModelo();

            CopiarADBModelo(modelo, modeloTmp);
            using (var DBCtxt = new SimplexContext())
            {
                DBCtxt.Modelos.Add(modeloTmp);
                DBCtxt.SaveChanges();
            }
        }
示例#2
0
        public IModelo Get(Guid id)
        {
            var model = new Modelo("tmp");

            using (var dbmod = new SimplexContext())
            {
                var q = dbmod.Modelos.Include(n => n.FuncionAOptimizar)
                        .Include(n => n.FuncionOriginal)
                        .Include(n => n.Ecuaciones)
                        .Include(n => n.Ecuaciones.Select(x => x.Terminos))
                        .Where(n => n.Id == id).FirstOrDefault();
                dbmod.Entry(q.FuncionAOptimizar).Collection(n => n.Terminos).Load();
                dbmod.Entry(q.FuncionOriginal).Collection(n => n.Terminos).Load();
                CopiarAModelo(q, model);
            }
            return(model);
        }
示例#3
0
 public void Remove(Guid id)
 {
     using (var DBCtxt = new SimplexContext())
     {
         var      modelo = Get(id);
         DBModelo q      = new DBModelo();
         CopiarADBModelo((IModelodata)modelo, q);
         DBCtxt.Modelos.Attach(q);
         DBCtxt.Ecuaciones.Attach(q.FuncionAOptimizar);
         DBCtxt.Terminos.RemoveRange(q.FuncionAOptimizar.Terminos);
         DBCtxt.Ecuaciones.Remove(q.FuncionAOptimizar);
         DBCtxt.Terminos.RemoveRange(q.FuncionOriginal.Terminos);
         DBCtxt.Ecuaciones.Remove(q.FuncionOriginal);
         foreach (var e in q.Ecuaciones)
         {
             DBCtxt.Terminos.RemoveRange(e.Terminos);
         }
         DBCtxt.Ecuaciones.RemoveRange(q.Ecuaciones);
         DBCtxt.Modelos.Remove(q);
         DBCtxt.SaveChanges();
     }
 }