Después de tiempo, escribo en mi Blog. El trabajo me tenía del cogote. Pero aprovecharé para hablar de uno de los temas que he estado aprendiendo en estos meses.
El ADO.NET es conocido como una serie de componentes que hacen posible a los desarrolladores el acceso a datos y servicios de las bases de datos relacionales. Es parte de una las librerías que esta incluida en el .NET Framework. En especifico les comentaré del Entity Framework.
Entity Framework
Uno de los componentes del ADO.net. El Entity Framework realiza una abstracción de las relaciones de una base de datos y las muestra en la aplicación. Por ejemplo, si en la base de datos tenemos una base de nombre Librería, con sus 3 tablas : Libro, TipoLibro y Editorial; cada una con sus respectivas relaciones como se muestra en la imagen:
Si usamos el Entity Framework para mapearlas en nuestra aplicación de Visual Studio, ahora se vería así:
Como vemos las tablas se han agregado a nuestra aplicación.
¿Como haríamos un ingreso a la base de datos usando el Entity Framework?
He diseñado una ventana simple para el ingreso del tipo de Libro:
Nota: La interfaz esta hecha en WPF, no uso WinForms, por que me es mas cómodo usar el WPF.
Tenemos la Base de Datos “SistemaLibreria” con 3 tablas: Libro, Tipo Libro, Editorial.
- Lo primero que tendremos que hacer es crear una nueva instancia de la clase Libro, como si fuera una clase cualquiera.
- Agregarlo los datos del nuevo Tipo de libro en las propiedades de ese nuevo objeto.
- Usamos el contexto para el ingreso del nuevo tipo de libro, usando el método “AddObject”, donde le especificamos, en String, la tabla (en este caso “TipoLibro”) y después el objeto TipoLibro que hemos instanciado y llenado con la información ingresada de la interfaz.
- Finalmente usamos el método SaveChanges, que permitirá que se reflejen los cambios hechos en la base de datos.
El código en Visual Basic sería así:
Private Sub btnAgregarTipo_Click(ByVal sender As System.Object,
ByVal e As System.Windows.RoutedEventArgs)
Handles btnAgregarTipo.Click
Using contexto As New SistemaLibreriasEntities
Dim tipoLibro As New TipoLibro
tipoLibro.Descripcion = txtNombreTipo.Text
contexto.AddObject("TipoLibro", tipoLibro)
contexto.SaveChanges()
MessageBox.Show("Ingreso Satisfactorio", "Mensaje")
End Using
End Sub
El código en C# sería así:
private void btnAgregarTipo_Click(object sender, RoutedEventArgs e)
{
using (SistemaLibreriasEntities conexion= new SistemaLibreriasEntities())
{
TipoLibro tipoLibro = new TipoLibro();
tipoLibro.Descripcion = txtNombreTipo.Text;
conexion.AddObject("TipoLibro", tipoLibro);
conexion.SaveChanges();
MessageBox.Show("Ingreso Satisfactorio", "Mensaje");
}
}
Para ingresar los datos, ahora no es necesario usar insert en String como se hace en otros métodos. En mi opinión, aunque es la forma mas usada, no es la mas confiable y necesitas experiencia en el lenguaje SQL, para evitar algún error. Siendo que el contenido de los String no se valida, nos podemos pasar horas de horas, tratando de hallar el problema. Siendo perjudicial para el estudio o trabajo que estemos realizando.
Una desventaja vital del Entity Framework, es que algunos los cambios que realices después en la base de datos, tales como nuevas tablas, cambios de relaciones de llaves foráneas, nombre de tablas, entre otras no se verán reflejadas automáticamente. Deberás crear de nuevo el modelo mapeado, lo cual es terrible si son muchas tablas. Lo que si he comprobado es que cambios menores como el ingreso de nuevos campos en una tabla, si se verán reflejados, cuando realices una actualización.
Eso es todo por esta parte. Espero les haya agradado. En la próxima entrega veremos la modificación y eliminación de registros, usando el Entity Framework.


1 comentario:
Hola amigo, he leído tu post y me parece que has hecho una buena introducción de lo que es ADO.NET. Pero ahora tengo una cuestión: estoy buscando información para actualizar un registro en una base de datos. Hago lo siguiente:
HOSPITAL hos = new HOSPITAL();
hos.nombre = txtNomHospital.Text;
//El hospital existe y quiero modificar los datos, sin hacer dataBase.AddToHospital(hos);
dataBase.¿?¿? (cómo actualizo??);
dataBase.SaveChanges();
Muchas gracias :)
Publicar un comentario