Entity FrameWork 4: Obteniendo, insertando y actualizando registros
marzo 17, 2012 2 comentarios
El Entity FrameWrok (EF) es una buena manera de trabajar con los datos y centrarnos en la logica del negocio mas que en el tratamiento de los datos pero apesar de usar sitios web de datos dinamicos (SWDD) siempre se requiere manejar de forma personalizada las operaciones hacia nuestras tablas es aqui donde se usarian estas opciones:
Antes que nada siempre se define un manejador del contexto de datos que es la linea erpbuildandcarEntities dc = new erpbuildandcarEntities(); es este el que hace los manejos hacia la base de datos.
Traer registros de la base de datos
erpbuildandcarEntities dc = new erpbuildandcarEntities();
var contrat = from a in dc.v_contratos select a;
Esto va hacer que en la variable “contrat” se le asigne un objeto IQueryable<v_contratos>, como se ve esto es LINQ to SQL y se podria hacer algunos filtros basados en Where y demas opciones de Linq to Sql pero si se quisiera hacer algo diferente como aplicarles filtros a estos datos puedes hacer algo mo esto:
contrat= contrat.Where(a => a.Fecha_de_Emision >= desde);
contrat= contrat.Where(a => a.Fecha_de_Emision <= hasta);
esto le aplica filtros a los valores que estan en el objeto.
Insertar un registro
Primero creamos una instancia de la clase (en este caso una insta de contratos), luego se le asignan los valores que le corresponden, una vez termiando con ello se le asigna al contexto de la base de datos y por ultimo se graban los cambios.
erpbuildandcarEntities erpe = new erpbuildandcarEntities();
rentacard.contratos cont = new rentacard.contratos(); //creando una instancia de la clase contratos
cont.anulado = false; //asignado valores
cont.combustible = Convert.ToDecimal(txtcombustible.Text);
cont.ejecutado = false;
cont.fecha = DateTime.Parse(txtfecha.Text);
.
.
.
.
erpe.AddTocontratos(cont); //adicionando el objeto a al contexto de datos
erpe.SaveChanges(); //grabamos los cambios
Actualizando registros
Veamos este ejemplo, lo que se quiere es actualizar el numero de documento con el siguiente al usado actualmente, asi si el numero actual es “000001″ se debe de grabar en labla el “000002″ pues veamos como es esto:
erpbuildandcarEntities erpe = new erpbuildandcarEntities();
int h = Convert.ToInt16(cbotipdoc.SelectedValue);
rentacard.series order = (from o in erpe.series where o.idtipdoc == h select o).First();
order.numact= (Convert.ToInt16(txtnumdoc.Text) + 1).ToString().PadLeft(10, ’0′);
erpe.SaveChanges();
Ultimos Comentarios