none
ayuda amigos urgente alguien puede darme una luz RRS feed

  • Pregunta

  • aqui les presento mi codigo:

            public ActionResult Importar(factura factura, int num_cot)
            {
                var sec = (from se in db.cosecutivos
                           select se).ToList();
    
                ViewData["sec_fac"] = sec[0].facturas + 1;
    
                var imp = (from l in db.cotizas.Include("cliente").Include("Producto")
                           where l.numero == num_cot
                           select l).ToList();
                foreach (var registro in imp)
                {
                    var llave=registro.id+1;
                    var ori = registro.numero;
                    var nom = registro.nombre;
                    var art = registro.articulo;
                    var canti= registro.cantidad;
                    var cli = registro.co_cli;
                    var des = registro.descripcion;
                    var dir = registro.direccion;
                    var pre = registro.precio;
                    var tot = registro.total;
                    var reng = registro.renglon;
                    var fecha= registro.fec_emis;
                    factura.num_origen = ori;
                    factura.nombre = nom;
                    factura.articulo = art;
                    factura.cantidad = canti;
                    factura.co_cli = cli;
                    factura.descripcion = des;
                    factura.direccion = dir;
                    factura.fec_emis = DateTime.Now;
                    factura.precio = pre;
                    factura.total = tot;
                    factura.renglon = reng;
                    factura.usuario = @User.Identity.Name;
                    factura.fec_origen = fecha;
                    factura.doc_origen = "C";
    
                    if (ModelState.IsValid)
                    {
                        db.facturas.AddObject(factura);
                        db.SaveChanges();
                    }
    
                }
                return RedirectToAction("Index");
            } 

    ok estoy tratando de recorrer una matriz pero a medida de que pasa un registro lo va grabando con savechange(), lo cual el primer registro me guarda bien pero el segundo me revienta y me manda el siguiente mensaje:

    Ya existe un objeto con la misma clave en ObjectStateManager. El objeto existente se encuentra en un estado Modified. Sólo es posible agregar un objeto a ObjectStateManager de nuevo si se encuentra en un estado agregado."

    martes, 7 de mayo de 2013 19:05

Todas las respuestas

  • bueno yo mismo me respondere probando y probando me di cuenta que necesitaba algo asi

    el codigo cambia en las lineas que esta juntos con el saveChanges()  espero les ayude como me ayudo a mi

      
          //
            // GET: /Facturas/Importar
    
            public ActionResult Importar(factura factura,cosecutivo cosecutivo, int num_cot)
            {
                var sec = (from se in db.cosecutivos
                           select se).ToList();
    
                var sec_fac = sec[0].facturas + 1;
    
                var imp = (from l in db.cotizas.Include("cliente").Include("Producto")
                           where l.numero == num_cot
                           select l).ToList();
                foreach (var registro in imp)
                {
                    var llave=registro.id+1;
                    var ori = registro.numero;
                    var nom = registro.nombre;
                    var art = registro.articulo;
                    var canti= registro.cantidad;
                    var cli = registro.co_cli;
                    var des = registro.descripcion;
                    var dir = registro.direccion;
                    var pre = registro.precio;
                    var tot = registro.total;
                    var reng = registro.renglon;
                    var fecha= registro.fec_emis;
                    factura.numero = sec_fac;
                    factura.num_origen = ori;
                    factura.nombre = nom;
                    factura.articulo = art;
                    factura.cantidad = canti;
                    factura.co_cli = cli;
                    factura.descripcion = des;
                    factura.direccion = dir;
                    factura.fec_emis = DateTime.Now;
                    factura.precio = pre;
                    factura.total = tot;
                    factura.renglon = reng;
                    factura.usuario = @User.Identity.Name;
                    factura.fec_origen = fecha;
                    factura.fec_ins = DateTime.Now;
                    factura.doc_origen = "C";
    
                    if (ModelState.IsValid)
                    {
                        db.facturas.AddObject(factura);
                        db.SaveChanges();
                        db.ObjectStateManager.ChangeObjectState(factura, EntityState.Added);
                    }
    
                }

    martes, 7 de mayo de 2013 21:23